本周第一更
传送门
无字天书之Python第一页
无字天书之Python第二页
无字天书之Python第三页
变量
不懂什么是变量的自己翻到第二页看了在来
变量基础
python相对于Java,定义变量还是有点不同: 无需声明,是直接在赋值的时候就完成了声明
所以在语法上面来说Python直接使用一个没有声明的对象会报错
# print(name); # 没有定义
# Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 3, in <module>
# print(name)
# NameError: name 'name' is not defined
报错信息是name变量为定义,所以我们对name进行定义
# print(name); # 没有定义
# Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 3, in <module>
# print(name)
# NameError: name 'name' is not defined
name='onlyK'
print(name);
也可以再次赋值,就会覆盖掉之前的值
name='onlyK'
name='再次赋值'
print(name);
存在业务场景,不需要这个变量了,Python也是提供了方法滴,但是再次打印会报错,和前面未定义一样的
name='onlyK'
name='再次赋值'
print(name);
# onlyK
# 变量删除
del name;
print(name)# 结果和没有定义一样的
# 结果
#Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 15, in <module>
# print(name)
#NameError: name 'name' is not defined
变量类型转换
存在业务场景:们的变量需要参加运算,如果变量类型不同会怎么样呢?
场景一
如果我们要使用一个字符串加上一个整形会怎么样呢?恭喜你:裂开
#如果我们要使用一个字符串加上一个整形会怎么样呢?
print('123' + 123)
# 打印结果
# Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 25, in <module>
# print('123' + 123)
# TypeError: can only concatenate str (not "int") to str
含义:是告诉我们字符串只能连接一个字符串,并不能连接一个整形
解决方案:
将字符串强成整形,结果会是一个整形
将整形转成字符串,执行字符串拼接操作
当然,这里涉及到了类型强制转换。
float() 函数,将其他类型数据转为浮点数
str() 函数,将其他类型数据转为字符串
int() 函数,将其他类型数据转为整型
两种方案
print('123' + str(123))
# 结果132123
print(int('123') + 132)
# 结果255
涉及问题:浮点型和整形转换会有什么问题?
print(123.5 + 123)
# 结果246.5
结果变成浮点型
print(int(246.5))
print(int(246.6))
print(int(246.7))
print(int(246.8))
print(int(246.9))
# 结果246 可以看出强制类型降级时,会直接抹去末尾小数,这里并不会做四舍五入哦~~~
需要做到有四舍五入的方式
两种方法
第一种:加0.5就完事
# 想要使用四舍五入的方式
print(int(246.9 + 0.5))
# 结果 247
第二种:使用方法round()
# 第二种方法 round()
print(int(round(123.4)))
# 结果123
print(int(round(123.5)))
# 结果124
全部代码
# 无字天书第四页
# 变量基础
# print(name); # 没有定义
# Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 3, in <module>
# print(name)
# NameError: name 'name' is not defined
# name='onlyK'
#
# name='再次赋值'
# print(name);
# 结果:onlyK
# 变量删除
# del name;
# print(name)# 结果和没有定义一样的
#Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 15, in <module>
# print(name)
#NameError: name 'name' is not defined
# 变量类型转换
#如果我们要使用一个字符串加上一个整形会怎么样呢?
# print('123' + 123)
# 打印结果
# Traceback (most recent call last):
# File "E:/Python/DataType/four.py", line 25, in <module>
# print('123' + 123)
# TypeError: can only concatenate str (not "int") to str
# print('123' + str(123))
# # 结果132123
# print(int('123') + 132)
# # 结果255
# 连带问题 一个整形和一个浮点型加变成什么类型?
# 类型提升
print(123.5 + 123)
# 结果246.5
print(int(246.5))
print(int(246.6))
print(int(246.7))
print(int(246.8))
print(int(246.9))
# 结果246 可以看出强制类型降级时,会直接抹去末尾小数,这里并不会做四舍五入哦~~~
# 想要使用四舍五入的方式
print(int(246.9 + 0.5))
# 结果 247
# 第二种方法 round()
print(int(round(123.4)))
# 结果123
print(int(round(123.5)))
# 结果124