欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > python基础:变量-数据类型(整数类型、浮点类型、布尔类型、字符串类型)

python基础:变量-数据类型(整数类型、浮点类型、布尔类型、字符串类型)

2025/4/18 9:37:26 来源:https://blog.csdn.net/2201_75442471/article/details/147139971  浏览:    关键词:python基础:变量-数据类型(整数类型、浮点类型、布尔类型、字符串类型)

目录

变量

1.1 变量的概念

1.2 变量的使用步骤

1.3.格式化输出

1.4 加号使用

1.5. 数据类型

1.5.1 注意:

1.5.2 整数类型

1.5.3. 浮点类型

1.5.4. 布尔类型(bool)

1.5.5. 字符串(str)


变量

1.1 变量的概念

1)变量相当于一个数据存储空间的表示

2)你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。

3)变量指向一个空间,空间里面存放了数据

1.2 变量的使用步骤

定义变量:a = 60 使用: print(a)

提示:需要先定义变量,才能使用,否则会提示 not defined

1.3.格式化输出

# 格式化输出案例
# 定义变量
name = "mary"  # 字符串
age = 21  # 整型
score = 99.9  # 浮点型
gender = "女"  # 字符串# %操作符输出 好处:方便在变量之间进行格式上的编辑
print("个人信息:%s - %d - %s - %.2f" % (name, age, gender, score))  # .2f保留两位小数# format()函数 好处:不用在意变量的类型了,统一使用{}占位
# {} > 参数个数:报错 {} < 参数个数:不影响,只输出{}个数的参数,多的不输出
print("个人信息:{} {} {}".format(name, age, gender))# f-strings(推荐) f:f就算format,有了f,则{}里面的是变量,编译器会去前面寻找这样的变量
print(f"个人信息: {name} {age} {score} {gender}")

1.4 加号使用

  • 左右两边都是数值型时,则做加法运算。

  • 左右两边都是字符串时,则做拼接运算。

name = "one"
score = 60.5print(score + 90)   # 150.5
print(name + " hi")  # one hi
print("100" + "98")  # 10098 不是198,是两个字符串的拼接
print(34.5 + 100)  # 134.5

1.5. 数据类型

1.5.1 注意:

  • python中的变量在使用前都必须赋值,变量赋值以后该 变量才会被创建

  • 我们说的“类型”是变量所指的内存数据的类型

1.5.2 整数类型

1.在python中,int可以表示很大的数,限制最多存放4300个数字长的值,(官方:the limit(4300 digits) for integer)

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

# Python的整数有10进制,16进制(0x前缀 0~9 A~F),8进制(0o 0~7),2进制(0b 0~1),运行时会自动转换成十进制输出
print(10)  # 10
# 十六进制
print(0x10)  # 16(十六进制10对应的是十进制16)
# 八进制
print(0o10)  # 8
# 二进制
print(0b10)  #2

3.Python中整型占多少字节?

  • 字节数随着数字增大而增大,python整型是变长的(java中int固定4字节),最小28个字节,每次增量4个字节。

  • 可通过sys.getsizeof((object))返回对象的字节大小

    字节(byte):计算机中基本存储单位
    位(bit):计算机中最小存储单位 1byte = 8bit

    1.5.3. 浮点类型

  • 十进制:5.12, .512

  • 科学计数法:5.12e2 (5.12*10^2), 5.12E -2 (5.12/(10^2))

  • 浮点数有最大值最小值限制(max=1.7976931348623157e+308,min=2.2250738585072014e-308);

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

# 浮点数表示形式
print(4.2)
print(-2.1)
print(.41) # 0可以省略 0.41# 科学计数法形式:如:5.12e2, 5.12E-2   e/E不区分大小写
n5 = 5.12e2  # 5.12乘以10的2次方
n6 = 5.12E-2  # 5.12除以10的2次方
print("n5=", n5)
print("n6=", n6)# 浮点数型计算后,存在精度的损失,可以使用Decimal类进行精确计算(导入Decimal类)
b = 8.1/3  # 2.7
print("b=", b)  # b= 2.6999999999999997 精度丢失# 解决方法
# 导入Decimal类
from  decimal import Decimalb = Decimal("8.1") / Decimal("3")
print("b=", b)  # b=2.7

1.5.4. 布尔类型(bool)

  • 取值True和False,通常用于逻辑运算,一般用于程序流程控制(条件控制语句,循环控制语句)

  • 布尔类型可以和其他数据类型进行比较,比如数字、字符串,比较时python将True视为1,将False视为0

  • 非0被视为真值,0被视为假值

    b1 = False
    b2 = Trueprint(b1 + 10)  # 10
    print(b2 + 10)  # 11# == 比较 = 赋值
    if b1 == 0:print("b1 == 0")
    if b2 == 1:print("b2 == 1")# 非0被视为真值,0被视为假值
    if 0:print("哈哈")
    if -1:print("嘻嘻")
    if 1.1:print("1.1")
    if "one":print("hi one")

    1.5.5. 字符串(str)

  • 可以用 " " 或者 ' '来引用

  • 通过+连接字符串

  • python不支持单字符类型,同样被视为字符串;

  • 三引号( ‘ ’ ' 或 " “ ” )可使内容原样输出;

  • 字符串前加 r 可使字符串不被转义;

    # 单引号和双引号可以用于嵌套,而不适用转义字符表示引号;
    print("他说:'你好'")# python不支持单字符类型,同样被视为字符串;
    str = 'a'
    print("a的类型是:", type(str))# 三引号(‘’'或"“”)可使内容原样输出,适用于输出复杂的内容
    content = """你好,哈哈‘’ “”aaaaffvss      ' '"      dda ho''""  
    帮"""
    print(content)# 字符串前加 r 可使字符串不被转义;
    str1 = r"one\ntom\tmary"
    print(str1)
  • 字符串驻留机制:字符串池,节省空间提高效率(PyCharm对字符串进行了优化处理都可以实现驻留)

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

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

# 字符串驻留机制:字符串池,节省空间提高效率
str2 = "hello"
str3 = "hello"# id()函数是可以返回对象/数据的内存地址
print("str2的地址:", id(str2))
print("str3的地址:", id(str3))# 驻留机制的几种情况 :PyCharm做了优化,可以全部驻留,使用cmd原生的交互模式下是下面的情况采用驻留
# 1) 字符串是由26个英文字母大小写,0-9,_组成(需在交互模式win+R -> python)
x = "abcABC_123"
y = "abcABC_123"
print("x=", id(x), "y=", id(y)) # 相同a = "abc#"
b = "abc#"
print(id(a) == id(b))  # False 不同# 2)字符串长度为0或1时(空串或者长度为1)发生驻留
m = ""
n = ""
print("m=",id(m),"n=",id(n))
m1 = "!"
n1 = "!"
print("m1=",id(m1),"n1=",id(n1))# 3)字符串在编译时进行驻留,而非运行时(字符串在没有确定变量内容是什么前,可以发生驻留)
a = "abc"
b = "".join(["a", "bc"])  # 运行后确定内容"abc"
print(id(a) == id(b))  # False# 4) [-5, 256]的整数数字
num1 = 3
num2 = 3
print(id(num1) == id(num2))# 强制2个字符串指向同一个对象
s1 = "abc#"
s2 = sys.intern(s1)  # s2的地址与s1本来不同,现在我们强制让s2指向s1的地址
print(s1 is s2)  # True# pycharm对字符串进行了优化处理,不受驻留机制情况限制

 驻留原理图:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词