本文标识 : P00005
本文编辑 : 采药 编程工具 : Python 阅读时长 : 2分钟
本章内容,我们将学习整数和浮点数的相关内容。
Python中,我们除了要跟代码打交道外,还要处理很多的数字,用来做可视化、记录用户信息等等。所以Python会根据数字的用法,以不同的方式处理他们,常见的类型有整数和浮点数。
整数
鉴于整数用起来最简单。我们下面就看看Python是怎么处理他们的
print(2+3)
print(3-2)
print(2*3)
print(3/2)
输出答案
5
1
6
1.5
我们看到,python会直接执行数字的运算。
另外,Python使用两个称号代表乘方运算。比如:
print(3**2)
print(3**3)
print(10**6)
运行结果
9
27
1000000
另外,Python还支持运算顺序,让Python按照你指定的次序执行运算,如图所示:
print(2+3*4)
print((2+3)*4)
运行结果
14
20
浮点数
很大程度上说,使用浮点数时都无需考虑其行为,只需要数字想要使用的数字,Pyhton通常都会按照你期望的方式处理它们。
print(0.1+0.1)
0.2
print(0.2+0.2)
0.4
print(2*0.1)
0.2
print(2*0.2)
0.4
但是需要注意的是,结果包含的小数位数可能是不确定的,比如说:
print(0.2+0.1)
0.30000000000000004
print(3*0.1)
0.30000000000000004
所有语言都存在这种问题,无需担心,Python会尽力找到一种方式,以尽可能精确地表示结果,但鉴于计算机内部数字的方式,有些情况下很难,就现在而言,暂时忽略多余的小树位数就好。
特别注意
假如在需要拼接字符的时候,用到了变量的值,类似下面:
age=23
message="Happy " + age + "rd Birthday!"
print(message)
如果你以为上述代码会打印成一条完整的生日祝福信息“Happy 23rd birthday",那么恭喜你,你答错了。
这些代码运行后,会报错如下:
TypeError Traceback (most recent call last)
<ipython-input-1-5ceeb46a977f> in <module>()
1 age=23
----> 2 message="Happy " + age + "rd Birthday!"
3 print(message)
TypeError: Can't convert 'int' object to str implicitly
这是一个类型错误,意味着Python无法识别你使用的信息,这个实例中,python发现你使用了一个值为整数(int)的变量,但是它不知道该如何解读这个值,python无法区分age代表的是23还是2和3.
所以,类似上述这种情况,可以使用str(),它可以让Python把非字符串表示为字符串:
age=23
message="Happy " + str(age) + "rd birthday!"
print(message)
运行结果
Happy 23rd birthday!
如此完美!
期待一起成长