闲聊之Python的数据类型
测试题:
0. 在 Python 中,int表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
bool: 布尔型,True代表1,False代表0;float: 浮点型;str: 字符串
1. 你知道为什么布尔类型(bool)的True和False分别用1和0来代替吗?
(1)因为这样方便代码判断条件使用
(2)由于二进制只有两个数:0和1,因此用0和1来表示False和True再适合不过了
因为不用浪费资源在转换的过程上
2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
向下取整
3. 我们人类思维是习惯于"四舍五入"法,你有什么办法使得 int() 按照"四舍五入"的方式取整吗?
# 定义一个变量 a,用于存放一个小数
a = 1.65249646
# 定义一个变量,临时存放小数a乘于10的结果
temp = a * 10
# 将小数a乘于10的结果转换成int整数类型
b = int(temp)
# if判断,小数a乘于10的结果模10后是否大于等于5
if (b % 10 >= 5):
# 大于或者等于5,则小数a转换成int整数类型之后加1,完成四舍五入
a = int(a) + 1
else:
# 否则只取整,无法四舍五入
a = int(a)
# 打印输出最后的数
print(a)
4. 取得一个变量的类型,可以使用type()和isinstance(),你更倾向于使用哪个?
取得一个变量的类型使用同type(),但是确认两个是不是同意一类型使用isinstace()
5. PYthon3可以给变量命名中文名,知道为什么吗?
Python3源代码中默认使用UTF-8编码(支持中文),所以中文代码是合法的。
动动手:
0. 再次改进我们的小游戏:当用户输入错误的类型的时候,及时提醒用户重新输入,防止程序崩溃
# 用户输入一个数字,并转换成int类型
temp = int(input('不妨猜一下我现在心里想的是哪个数字:'))
# while循环,当用户输入的不是int类型时,循环让用户重新输入
while not temp.isdigit():
print('你个小坏蛋!要输入数字喔,', end = '')
temp = input('请输入一个整数:')
1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的BIF进行灵活运用)
这样定义闰年的:能被 4 整除但不能被 100 整除,或者能被 400 整除都是闰年
# 打印输出提示
print('-----------------------测一测年份是平年还是闰年-----------------------')
print('请输入年份数字:', end = '')
# 用户输入年份数字
temp = input()
# while循环,当用户输入的不是int类型时,循环让用户重新输入
while not temp.isdigit():
print('你这个小坏蛋!要输入整数喔,', end = '')
# 用户重新输入
temp = input("请输入一个整数年份:")
year = int(tmep) # 将用户输入的年份转换成int类型
if year % 400 == 0: # 判断是否被400整除
# 因为year是int类型的,不能与字符串拼接,所以要转换成str类型
print(str(year) + "是闰年")
else:
if (year % 4 == 0) and (year % 100 != 0): # 判断是否能被 4 整除,不能被 100 整除
print(str(year) + '是闰年') # 是
else:
print(str(year) + '是平年') # 否