Python——第二章:基础数据类型

下面是需要掌握的知识点:

int, float, bool  (5星)
str   (5星)
list    (5星)
tuple   (2星)
set     (1星)
dict    (5星)
bytes   (4星)
运算符   (3星)
文件操作  (4星)

 

int: 整数,可以用来加减乘除, 大小比较

a = 10

float: 小数, 浮点数

a = 10.5
print("a=",a)
b = 10/3
print("10÷3=",b)

输出结果:

a= 10.5
10÷3= 3.3333333333333335

整数: 在某一个特定的区间内是可以表示的很清楚的。比如在1~10000之间,仅存在1万个整数。并且可以直接表示出来这1万个整数

小数: 数据范围是无限的。比如在1~2之间,存在无数个小数,并且无法全部列出来所有。

计算机是一个二进制的产品,底层仅由0和1进行表示。计算机要表示一个小数是很困难的,并且表示小数是会有误差的。在此不过多扩展解释。

 

为什么10/3结果是3.3333333333333335而不是3.3333333333333333或者3.3333333333333334

在计算机内部,浮点数使用二进制表示,而不是十进制。虽然 10/3 的精确十进制表示是 3.3333333333333333(循环的小数部分为 3),但在二进制表示中,它无法精确地被有限位数的二进制数表示。因此,计算机存储的近似值是 3.3333333333333335,这是一个更接近原始值的浮点数表示。

在实际计算中,由于浮点数的精度限制,当执行各种操作(如加法、减法、乘法、除法等)时,可能会产生微小的舍入误差。这是因为计算机只能使用有限的位数来表示浮点数,所以在进行计算时会进行舍入。这些微小的舍入误差可能会导致你在某些情况下看到与预期结果略微不同的值。

如果你在 Python 中执行 10/3,得到的结果可能在不同的环境和计算机上略有不同,但都会接近于 3.3333333333333335。这是因为 Python 使用 IEEE 754 浮点数标准来表示浮点数,这在某些情况下可能会导致微小的舍入误差。

在所有的计算机语言中,都会有这样的问题出现,Java、C语言皆是如此。后续如果我们计算结果出现 2.0000000000000001这样的无限接近于2的结果,我们就认为这个结果就是2。

bool:布尔,用来做条件判断的

取值范围: True, False

例子:# 基础数据类型之间的转化

a = "10"  # 双引号引起来为字符串类型
print(type(a))#打印a的类型
b = int(a)  # 把字符串转化成int()
print(type(b))#打印b的类型

输出结果为

<class 'str'>
<class 'int'>

 # 在python中, 所有的非零的数字都是 True, 零是False

a = 0
b = bool(a)
print(type(b))
print(b)

 查看b的类型和b的值

<class 'bool'>
False

死循环——把while True:改成While 1:

while 1:  # 死循环, 恒为真
    print("还我钱")

# 在python中, 所有的非空字符串都是True, 空字符串是False

s = ""   
print(bool(s))

结果

False

综上, 在python的基本数据类型中, 表示空的东西都是False, 不空的东西都是True

lst = []#列表类型
print(bool(lst))

结果

False

注意,空、数字0、空格的意义不同,0或者是空格都代表有内容,结果是True

lst = [0]
print(bool(lst))

结果

True

下面结合空的概念,我们可以实现这样的代码,如果你的input为空,则可以break跳出死循环

while 1:
    content = input("请输入你要喷的内容:")
    if content:
        print("你要发给打野的内容:", content)
    else:
        break

 

posted @ 2023-08-30 11:19  Magiclala  阅读(16)  评论(0编辑  收藏  举报