3.Python3中,一行可以书写多个语句吗?
4.Python3中,一个语句可以分成多行书写吗?
5.请问Python的and操作符和C语言的&&操作符有何不同?
【该题针对有C或C++基础的朋友】
6.听说过“短路逻辑(short-circuitlogic)”吗?
动动手:
0.完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
1.尝试写代码实现以下截图功能:
第五课
测试题:
0.在Python中,int表示整型,那你还记得bool、float和str分别表示什么吗?
1.你知道为什么布尔类型(bool)的True和False分别用1和0来代替吗?
2.使用int()将小数转换为整数,结果是向上取整还是向下取整呢?
3.我们人类思维是习惯于“四舍五入”法,你有什么办法使得int()按照“四舍五入”的方式取整吗?
4.取得一个变量的类型,视频中介绍可以使用type()和isinstance(),你更倾向于使用哪个?
5.Python3可以给变量命名中文名,知道为什么吗?
6.【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?
动动手:
0.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:
当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
如果你尝试过以下做法,请举下小手:
1.temp=input("不妨猜一下小甲鱼现在心里想的是哪个数字:
")
2.#这种想法是因为type
(1)会返回,如果type(temp)返回结果一致说明输入是整数。
3.whiletype(temp)!
=type
(1):
4. print("抱歉,输入不合法,",end='')
5. temp=input("请输入一个整数:
")
复制代码
或者可能这样:
1.temp=input("不妨猜一下小甲鱼现在心里想的是哪个数字:
")
2.#not操作符的作用是将布尔类型的结果翻转:
即取反的意思,notTrue==Flase
3.whilenotisinstance(temp,int):
4. print("抱歉,输入不合法,",end='')
5. temp=input("请输入一个整数:
")
复制代码
以上方法的思路是正确的,不过似乎忽略了一点儿:
就是input()的返回值始终是字符串,所以type(temp)永远是!
其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。
所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!
s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回Ture,否则返回False。
s.isalpha() 所有字符都是字母,为真返回Ture,否则返回False。
s.isdigit() 所有字符都是数字,为真返回Ture,否则返回False。
s.islower() 所有字符都是小写,为真返回Ture,否则返回False。
s.isupper() 所有字符都是大写,为真返回Ture,否则返回False。
s.istitle() 所有单词都是首字母大写,为真返回Ture,否则返回False。
s.isspace() 所有字符都是空白字符,为真返回Ture,否则返回False。
例如:
>>>s='ILOVEFISHC'
>>>s.isupper()
>>>True
好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!
1.写一个程序,判断给定年份是否为闰年。
(注意:
请使用已学过的BIF进行灵活运用)
这样定义闰年的:
能被4整除但不能被100整除,或者能被400整除都是闰年。
2.请写下这一节课你学习到的内容:
格式不限,回忆并复述是加强记忆的好方式!
测试题答案:
本帖隐藏的内容
0.在Python中,int表示整型,那你还记得bool、float和str分别表示什么吗?
bool表示布尔类型
float表示浮点型
str表示字符串
1.你知道为什么布尔类型(bool)的True和False分别用1和0来代替吗?
你可能听说过计算机是很“笨”的,究其根本是因为它只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给CPU按照一定的规则解析。
由于二进制只有两个数:
0和1,因此用0和1来表示False和True再适合不过了,因为不用浪费资源在转换的过程上!
2.使用int()将小数转换为整数,结果是向上取整还是向下取整呢?
我们可爱的小甲鱼说了,小数取整会采用比较暴力的截断方式,即向下取整。
(注:
5.5向上取整为6,向下取整为5)
3.我们人类思维是习惯于“四舍五入”法,你有什么办法使得int()按照“四舍五入”的方式取整吗?
int()固然没那么“聪明”,但机器是死的,鱼油是活的!
5.4“四舍五入”结果为:
5,int(5.4+0.5)==5
5.6“四舍五入”结果为:
6,int(5.6+0.5)==6
大家看明白了吗?
4.取得一个变量的类型,视频中介绍可以使用type()和isinstance(),你更倾向于使用哪个?
建议使用isinstance(),因为它的返回结果比较直接,另外type()其实并没有你想象的那么简单,我们后边会讲到。
5.Python3可以给变量命名中文名,知道为什么吗?
Pyhton3源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:
>>>小甲鱼='我爱你'
>>>print(小甲鱼)
>>>我爱你
6.【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?
如果有不懂的问题,请在此处提问:
另外需要小甲鱼在视频讲解的方面做哪方面改进请回帖告之!
动动手答案:
本帖隐藏的内容
0.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:
当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
需要注意的地方在代码中已经注释!
1.importrandom
2.times=3
3.secret=random.randint(1,10)
4.print('------------------我爱鱼C工作室------------------')
5.guess=0
6.print("不妨猜一下小甲鱼现在心里想的是哪个数字:
",end="")
7.while(guess!
=secret)and(times>0):
8. temp=input()
9. whilenottemp.isdigit():
10. temp=input("抱歉,您的输入有误,请输入一个整数:
")
11. guess=int(temp)
12. times=times-1#用户每输入一次,可用机会就-1
13. ifguess==secret:
14. print("我草,你是小甲鱼心里的蛔虫吗?
!
")
15. print("哼,猜中了也没有奖励!
")
16. else:
17. ifguess>secret:
18. print("哥,大了大了~~~")
19. else:
20. print("嘿,小了,小了~~~")
21. iftimes>0:
22. print("再试一次吧:
",end="")
23. else:
24. print("机会用光咯T_T")
25.print("游戏结束,不玩啦^_^")
复制代码
1.写一个程序,判断给定年份是否为闰年。
1.temp=input('请输入一个年份:
')
2.whilenottemp.isdigit():
3. temp=input("抱歉,您的输入有误,请输入一个整数:
")
4.
5.year=int(temp)
6.ifyear/400==int(year/400):
7. print(temp+'是闰年!
')
8.else:
9. if(year/4==int(year/4))and(year/100!
=int(year/100)):
10. print(temp+'是闰年!
')
11. else:
12. print(temp+'不是闰年!
')
复制代码
2.尝试写代码实现以下截图功能:
3.请写下这一节课你学习到的内容:
格式不限,回忆并复述是加强记忆的好方式!
回复您的答案即可查看参考答案!
测试题答案:
本帖隐藏的内容
0.请问以下代码会打印多少次“我爱鱼C!
”
死循环,会一直打印“我爱鱼C!
”(嗯,这也算是永远支持鱼C的方法之一),直到崩溃或者用户按下快捷键CTRL+C(强制结束)
造成死循环的原因是while后边的条件永远为真(True),在Python看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!
):
FalseNone0""''()[]{}
其他一切都被解释为真!
不妨试试:
1.while'':
2. print('进入循环')
3.print('退出循环')
复制代码
或者
1.whileFlase:
2. print('进入循环')
3.print('退出循环')
复制代码
或者
1.while0:
2. print('进入循环')
3.print('退出循环')
复制代码
1.请问以下代码会打印多少次“我爱鱼C!
”
会打印10次。
2.请写出与10(10
3.Python3中,一行可以书写多个语句吗?
可以,语句之间用分号隔开即可,不妨试试:
>>>print('Ilovefishc');print('verymuch!
')
4.Python3中,一个语句可以分成多行书写吗?
可以,一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:
1.>>>3>4and\
2. 1<2
复制代码
或者
1.>>>(3>4and
2. 1<2)
复制代码
5.【该题针对有C或C++基础的朋友】请问Python的and操作符和C语言的&&操作符有何不同?
有图有真相(C\C++VSPython):
VS
6.听说过“短路逻辑(short-circuitlogic)”吗?
逻辑操作符有个有趣的特性:
在不需要求值的时候不进行操作。
这么说可能比较“高深”,举个例子,表达式xandy,需要x和y两个变量同时为真(True)的时候,结果才为真。
因此,如果当x变量得知是假(False)的时候,表达式就会立刻返回False,而不用去管y变量的值。
这种行为被称为短路逻辑(short-circuitlogic)或者惰性求值(lazyevaluation),这种行为同样也应用与or操作符,这个后边的课程小甲鱼会讲到,不急。
实际上,Python的做法是如果x为假,表达式会返回x的值(0),否则它就会返回y的值(例子参考楼上那题)。
动动手答案:
本帖隐藏的内容
0.完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
需要注意的地方在代码中已经注释!
1.importrandom
2.times=3
3.secret=random.randint(1,10)
4.print('------------------我爱鱼C工作室------------------')
5.#这里先给guess赋值(赋一个绝对不等于secret的值)
6.guess=0
7.#print()默认是打印完字符串会自动添加一个换行符,end=""参数告诉print()用空格代替换行
8.#嗯,小甲鱼觉得富有创意的你应该会尝试用end="JJ"?
9.print("不妨猜一下小甲鱼现在心里想的是哪个数字:
",end="")
10.while(guess!
=secret)and(times>0):
11. temp=input()
12. guess=int(temp)
13. times=times-1#用户每输入一次,可用机会就-1
14. ifguess==secret:
15. print("我草,你是小甲鱼心里的蛔虫吗?
!
")
16. print("哼,猜中了也没有奖励!
")
17. else:
18. ifguess>secret:
19. print("哥,大了大了~~~")
20. else:
21. print("嘿,小了,小了~~~")
22. iftimes>0:
23. print("再试一次吧:
",end="")
24. else:
25. print("机会用光咯T_T")
26.print("游戏结束,不玩啦^_^")
复制代码
1.尝试写代码实现以下截图功能:
1.temp=input('请输入一个整数:
')
2.number=int(temp)
3.i=1
4.whilenumber:
5. print(i)
6. i=i+1
7. number=number-1
复制代码
2.尝试写代码实现以下截图功能:
1.temp=input('请输入一个整数:
')
2.number=int(temp)
3.whilenumber:
4. i=number-1
5. whilei:
6. print('',end='')
7. i=i-1
8. j=number
9. whilej:
10. print('*',