Python—变量、基本数据类型、类型的转换

Python—变量、基本数据类型

1 格式化输出

# 变量声明
name = "tom"
age = 23
gender = "男"

# 默认使用空格进行间隔
print("个人信息:", name, age)

# 格式化输出

# % 操作符形式
print("个人信息:%s - %d - %s" % (name, age, gender))

# format() 函数
# 使用 {} 进行占位
print("个人信息:{} _ {} _ {}".format(name, age, gender))

# f-strings 的形式
# 使用{变量}进行占位
# 注意在前面加上 f
print(f"个人信息:{name}={age}={gender}")

image-20250218153113747


2 + 号的使用

  • + 号2边都是数值,则数值相加
  • + 号2边都是字符串,则字符串拼接
  • + 一边是数值,一边是字符串,则会报错

3 变量的数据类型

  1. python 中的变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  2. 我们所说的 “类型” 是变量所指的内存数据的类型。
a = 10
b = "name is b"
image-20250218171833350
  • a、b 是变量,在 python 中,变量是没有类型的
  • a、b 变量指向的数据,10、“name is b” 是有类型的
  • 10、“name is b” 有些地方也称为字面量

4 type() 函数的使用

语法: type(object)

object 就是你要查看类型的数据,可以是一个具体的数据(即,字面量),也可以是变量(也就是查看该变量指向的数据的类型)

name = "tom"
age = 12
account = 33.3
age_18 = False

print(type(name))
print(type(age))
print(type(account))
print(type(age_18))

image-20250218172207192


5 数据类型的基本介绍

python 中的数据类型,有如下几种:

类型描述
整型 int整数:比如 1,-1,100等
浮点数 float小数:比如 1.1,-4.5,99.9等
布尔值 bool布尔值就是我们常说的逻辑,有2个值:Ture,False
字符串 string字符串就是字符组成的一串内容,python 中用成对的单引号或双引号括起来,比如 “abcd_efg”

5.1 int 整型

  1. python 中的整型,可以表示很大的数(官方给定的范围:the limit (4300 digits) for integer)

    # 在 python 中 a ** b 表示 a的b次方
    a = 100 ** 9999
    print(a)
    

    可以看到,当我们输出的数大于规定的范围时,会有如下报错信息:

    image-20250219080441423

  2. python 的整型有 十进制、十六进制、八进制、二进制

    • 十进制就是我们日常使用中的写法,比如1,6,20等

    • 十六进制写法:加前缀 0x ,由 0-9 和 A-F 的数字和字母组合

    • 八进制写法:加前缀 0o,由 0-7 数字组合

    • 二进制写法:加前缀 0b,只有数字 0 和 1 组合

    • 在运行时,会自动转换为十进制输出,即:

      print(0x10) 输出的是 16


python 中整型占多少个字节呢?

  1. 字节数随这数字的增大而增大(即:python 整型是变长的)
  2. 每次增量是4个字节
  3. 可以参考下面的文档:

Python中的整型占多少个字节? - Huahua’s Tech Road

# int 类型的大小是变长的随存储的数据大小变长
# sys.getsizeof 查看对象的大小,以字节表示
import sys
n1 = 2
n2 = 2 ** 6
n3 = 125 ** 5
n4 = 150 ** 12
n5 = 342 ** 13

print(sys.getsizeof(n1))
print(sys.getsizeof(n2))
print(sys.getsizeof(n3))
print(sys.getsizeof(n4))
print(sys.getsizeof(n5))

image-20250219081718890


5.2 float 浮点类型

  1. python 的浮点类型可以表示一个小数,比如 2.1,4.98,-0.66等。

  2. 浮点数表示形式如下:

    • 十进制形式:5.12;.512
    • 科学计数法形式:5.12e2(表示5.12 * 100);5.12E-2 (5.12 / 100)
  3. 浮点数有大小限制,边界值为:

    max = 1.7976931348623157e + 308

    min = 2.2250738585072014e - 308

  4. 浮点类型计算以后,存在精度的损失,可以使用 Decimal 类进行精确计算。

a = 8.1 / 3
print("a = ", a)

# 浮点数计算后存在精度的损失,可以使用 Decimal 类进行精确计算
# 使用 Decimal 类需要导入
from decimal import Decimal
b = Decimal("8.1") / Decimal("3")
print("b = ", b)

image-20250219131758113


5.3 bool 布尔类型

  1. 布尔类型也叫 bool 类型,取值 True 和 False

  2. True 和 False 都是关键字

  3. bool 类型适用与逻辑运算,一般用于程序流程控制

    • 条件控制语句
    • 循环控制语句
  4. 布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,python 会将 True 视为 1,False 视为 0

    True + 10 的值为 11;False + 10 的值为 10

  5. 在 python 中,非 0 被视为真值,0 值被视为假值

    if -3:
        print("-3为真值")
    
    if 2:
        print("2为真值")
    
    if "zifc":
        print("非空的字符串为真值")
    
    if "":
        print("空字符串为假值")
    

    image-20250219140405001


5.4 str 字符串类型

  1. 字符串是 python 中很常用的数据类型,通俗来说,字符串就是字符组成的一串内容

  2. 使用单引号或双引号(‘’ 或 `)包括起来,创建字符串

  3. str 就是 string 的缩写,在使用 type() 查看数据类型时,字符串类型显示的是 str

  4. 通过 + 号可以连接字符串

  5. python 不支持单字符类型,单字符在 python 中也是作为一个字符串使用

  6. 用三个单引号 (```内容```) ,或三个双引号( “”“内容”“” ) 可以使字符串内容保持原样输出,在输出格式复杂的内容是比较有用的,比如输出一段代码。

  7. 在字符串前面加 r 可以使整个字符串不会被转义。

image-20250219144148640


5.5 字符串驻留机制

  python 仅保留一份相同且不可变字符串,不同的值被存放在字符串的驻留池中,python 的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。

image-20250219145014504

id() 函数的介绍:

image-20250219145341221

str1 = "abc"
str2 = "abc"
str3 = "abc"

print("str1 = ", id(str1))
print("str2 = ", id(str2))
print("str3 = ", id(str3))

image-20250219145436968

  • 驻留机制几种情况讨论(注意:需要在交互模式下进行验证,进入交互模式:win + r --> 输入 python 然后回车)
  1. 字符串是由26个英文字母大小写,0-9,_(下划线) 组成会出现驻留

    下图中,字符串包含 # 号没有出现驻留的情况

    image-20250219150454666

  2. 字符串长度为0或者1时,会出现驻留情况

    image-20250219150733299

  3. 字符串在编译时进行驻留,而非运行时。

    下图中,b = "".join(["a","bc"]) 表示进行字符串拼接,要在运行之后b才等于"abc"

    image-20250219151042220

  4. [-5,256] 的整数数字,会发生驻留情况。

image-20250219151310576

  • sys 中的 intern 方法可以强制 2 个字符串指向同一个对象

    image-20250219151626921

  • 注意在 pycharm 软件中,对驻留机制进行了优化,使得字符串都可以实现驻留。

  • 驻留机制的好处

    当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存。


5.6 数据类型的转换

(1)隐式转换
  1. python 变量的类型不是固定的,会根据变量当前值在运行时决定的,可以通过内置函数 type(变量) 来查看其类型,这种方式就是隐式转换,也成为自动转换。
var = 10
print(type(var)) # int
var = 1.1
print(type(var)) # float
var = "xiong"
print(type(var)) # str
  1. 在运算时,低精度会自动向高精度转换。
a = 10
b = 1.1
c = a + b
print(type(c)) # float

(2)显式类型转换
  1. 如果需要对变量数据类型进行转换,只需要将数据类型作为函数名即可,这种方式就是显式转换/强制转换
  2. 下表的内置函数可以完成数据类型之间的转换,函数会返回一个新的对象/值,就是强制转换后的结果。
函数描述
int(x [,base])将x转换为一个整数
float(x)将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串

(3)显示类型转换注意事项
  1. 不管什么值的 int ,float 都可以转换为 str,使用 str(x) 将对象 x 转换为字符串

  2. int 转换为 float 时,会增加小数部分,比如 float(123) -> 123.0,float 转成 int 时,会去掉小数部分,比如 int(123.56) -> 123

  3. str 转 int ,float 使用 int(x),float(x) 将对象转换为 int/float

    注意: str 的格式要符合转换的要求,比如 ”123“ 可以转为 int,“abc” 却不能转为 int 和 float。

    “123.45” 可以转为 float,但是不能转为 int

    str1 = "123.45"
    a = int(str1)
    print(type(a))
    

    image-20250219162235913

​ 也就是说字符串转 int ,要求该字符串能直接转。

  1. 对一个变量进行强制转换,会返回一个数据/值,注意强制转换后,并不会影响原变量的数据类型(即不会影响原变量指向的数据/值的数据类型)

    var1 = 12.3
    var2 = int(var1)
    # var1 还是指向 12.3
    # var2 指向12
    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值