【Python系统学习02】数据类型与类型转换 (2)

最后,小数形式的字符串,由于Python的语法规则,也不能直接使用int()函数强制转换。比方说下列代码,如果点击运行,程序会报错。

print(int('1.8')) # ValueError: invalid literal for int() with base 10: '1.8' # (值异常:浮点类型字符串无法使用int()强制转换)

虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的

可以先将字符串转换为浮点类型,再将浮点数转换为int类型。

print(int(float('1.8'))) # 1,先将字符串'1.8'转换为浮点数1.8,再直接对浮点数1.8取整的到数字1 3、float()函数 3-1、使用

将需要转换的数据放在括号里,像这样:float(数据)。

3-2、规则

float()函数也可以将整数和字符串转换为浮点类型。

但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。如'2.3','52.1'这样,而不是'我是汉子'这样的纯文字

weight = 43.2 print(float(height)) # 43.2 四、数据类型的应用

字符串拼接

四则运算

1、四则运算

Python里的整数、浮点数和数学意义的整数、小数是一样的,它最重要的作用是与运算符号结合,进行数学计算。

2、Python中的运算符 运算符 含义 示例
+     1 + 1  
-     2 - 1  
*     1 * 2  
/     4 / 2  
%   取模 - 返回除法的余数   5 % 2 得到5除以2的余数  
**   幂 - 返回x的y次幂   2 ** 3 得到2的3次方  
//   取整除 - 返回商的整数部分   11 // 2 得到11/2的商再取整  
   

对上表中的运算符写几个例子运行一下:

# 运算符示例 print(20+19) # 39 print(2020-1993) # 27 print(20191231*20200101) # 407864905514331 print(2020/10) # 202.0 print(23%45) # 23 print(2**3) # 8 print(11//2) # 5 3、运算优先级

和我们平时的计算优先级是一样的:

从左到右计算,括号里的优先计算。

先乘除,后加减。

# 先口算,再运行,看你算的对不对。 print(1234*124+325235-1251) print((6236-124)/125+326*23) 4、字符串拼接

这就和Javascript中的一样了
非常简单,就是利用字符串拼接符号【+】,将需要拼接的变量连在一起就行了。

# 字符串拼接示例 a = '我' b = '叫' c = '小' d = '石' e = '头' print(a+b+c+d+e) # 我叫小石头

切记⚠️:做字符串拼接也好、运算符表达式也好,+号或其他符号两边的数据类型必须一致,否则会报错TypeError(详见第三篇错误类型合集B项错误记载)。

五、番外 - 浮点数计算精度问题

运算下边的代码:

print(0.55+0.3) # 0.8500000000000001

发现打印结果并不显而易见的0.85,而是0.8500000000000001。

为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.55和0.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:

# 进制转换 0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制) 0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。

然后,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypwsg.html