解答题:
0. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
bool布尔类型,float浮点型,str字符串类型。
1.你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
计算机只认识二进制,由于二进制只有两个数0和1,因此用0和1来表示在合适不过了,因为不用浪费在资源在转换的过程上
2.使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
向下取整。
3.人类思维是习惯“四舍五入”法,有什么办法使得int()按照“四舍五入”的方式取整?
加0.5
-
>>> a=8.6 -
>>> int(a+0.5) -
9
4.取的一个变量的类型,视频中介绍可以使用type()和 isinstance(),你更倾向使用哪个?
type() 直接返回一个输入的变量的类型;
isinstance() 返回变量与另一个变量的类型比较,如果是统一类型则返回TRUE,不同则返回FALSE。
5.Python3 可以给变量命名中文名,知道为什么吗?
Python3 源码文件默认使用 UTF-8编码(支持中文),这就中文代码是合法的。
我的答案:
0:int:整型,bool:布尔类型,float:浮点型,str:字符串,e记法
1:规定。bool类型是int类型的子类,所以在某种原因下,规定了Ture为1,Flase为0。
2:向下取整。向上向下取整都是不管四舍五入的,向上取整指当计算的结果不为整数时取大于计算结果的整数,向下取整指当计算的结果不为整数时取小于计算结果的整数。
3:方法1:使用python得到内置函数round。但round存在一个问题,当小数很小,又需要精确的时候,则会在精确度上出问题。
方法2:采用def round_up(value):,四舍五入保住两位小数。
小甲鱼答案:
5.4"四舍五入"结果为:5,int(5.4+0.5)==5.
5.6"四舍五入"结果为:6,int(5.6+0.5)==6.
4:我更倾向于type(),个人觉得这个用起来更方便,直接在括号里面写入想查询的数据就可以了,而在isinstance()中,不仅要写入数据,还要写入类型,从而让程序来判断对错,在目前初学的情况下,我暂时是不需要用到的。
5:创建于2007年5月的Python增强提案PEP 3131,指出很多Python开发者并不熟悉英语, 更希望用母语对类/方法进行命名, 而不是用经常有误的英文翻译. 对使用同样母语的开发者来说, 用母语命名的标识符可以提高代码清晰度和可维护性.
小甲鱼答案:Python3 源码文件默认使用 UTF-8编码(支持中文),这就中文代码是合法的。
实践题:
0.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
-
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
-
# 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
-
while type(temp) != type(1):
-
print("抱歉,输入不合法,", end='')
-
temp = input("请输入一个整数:")
或者可能这样:
-
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
-
# not操作符的作用是将布尔类型的结果翻转:即取反的意思,not True == Flase
-
while not isinstance(temp, int):
-
print("抱歉,输入不合法,", end='')
-
temp = input("请输入一个整数:")
以上方法的思路是正确的,不过似乎忽略了一点儿:就是 input() 的返回值始终是字符串,所以 type(temp) 永远是 <class 'str'>!
-
print('--------猜数字游戏3.0--------') -
import random -
num = random.randint(1,10) -
count = 3 -
guess =0 -
while (guess != num) and (count > 0): -
temp = input('请输入一个数字:',end='') -
while not temp.isdigit(): -
temp = input('sorry,输入类型有误,请输入一个整数:') -
guess = int(temp) -
count -= 1 -
if guess == num: -
print('bingo!') -
else: -
if guess > num: -
print('大了!') -
else: -
print('小了!') -
if count > 0: -
print('再来一次:',end='') -
else: -
print('机会用完了!') -
print('游戏结束!')
其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。
所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!
备注:
s.isalnum() 所有字符都是数字或者字母,返回 True,否则返回 False
s.isalpha() 所有字符都是字母,为真返回True,否则返回 False
s.isdigit() 所有字符都是数字,为真返回True,否则返回 False
s.islower() 所有字符都是小写,为真返回True,否则返回 False
s.isupper() 所有字符都是大写,为真返回True,否则返回 False
s.istitle()所有单词都是首字母大写,为真返回True,否则返回 False
s.isspace()所有字符都是空白字符,为真返回True,否则返回 False
例如:
>>> s = 'I LOVE FISHC'
>>> s.isupper()
>>> True
1.写一个程序,判断给定年份是否为闰年
-
print('--------求闰年--------') -
while 1: -
temp = input('请输入一个年份:') -
while not temp.isdigit(): -
temp = input('sorry,输入类型有误,请输入一个数值年份:') -
year = int(temp) -
if year/400 == int(year/400): -
print(temp+'是闰年') -
else: -
if (year/4 == int(year/4)) and (year/100 != int(year/100)): -
print(temp+'是闰年') -
else: -
print(temp+'不是闰年')
我的答案:
0:
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while temp.isdigit() == False:
print("抱歉,输入不正确,",end='')
temp = input("请输入一个整数:")
else:
count = 3
while count > 0:
guess = int(temp)
if guess == 8:
print("恭喜你,猜对了!")
break
else:
if guess > 8:
print("大了大了!")
else:
print("小了小了!")
temp = input("哎呀,错啦!再猜:")
guess = int(temp)
count = count - 1
print("好,游戏结束!")