零基础学习Python 作业 第5章
0 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
bool表示逻辑类型(True-1, False-0);
float表示浮点数类型;
str表示字符串类型。
1 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
计算机使用2进制表示,其中只有0和1。可以理解为实物的两个状态,真假。
2 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
向下取整
>>> num=int(3.6)
>>> num
3
>>>
3 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
int() 固然没那么“聪明”,但机器是死的,鱼油是活的!
5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5
5.6 “四舍五入”结果为:6,int(5.6+0.5) ==6
4. 取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance(),你更倾向于使用哪个?
>>> a= 5
>>> type(a)
<type 'int'>
>>> isinstance(a,int)
True
>>>
5. Python3 可以给变量命名中文名,知道为什么吗?
Pyhton3 源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:
>>> 小甲鱼 = '我爱你'
>>> print(小甲鱼)
>>> 我爱你
动动手:
0. 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!
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 = 'I LOVE FISHC'
>>> s.isupper()
>>> True
好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!
Python2.7
import random
times = 3
secret = random.randint (1,10)#随机函数
print(secret)
#先给出guess赋值(赋一个绝对不等于secret的值)
#print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
while times > 0:
temp = raw_input('猜猜我心里想的是什么数字?')
#输入语句要放到循环语句之内,当输入信息与随机生成信息不一致时可再次循环输入!
while not temp.isdigit():
temp = raw_input('输入错误,请再次输入:')
guess = int (temp)
times = times - 1#每输入一次,可用机会就-1
if guess == secret:
print('wtf,你是我心里的蛔虫吗?猜对了!')
break
else:
if guess > secret:
print('大了大了!!')
else:
print('小了小了!!')
if times > 0:
print ('再试一次吧:')
else:
print('机会用完了,退下吧。')
print('游戏结束,又被坑了吧!!')
Python 3.0
import random
times = 3
secret = random.randint (1,10)#随机函数
print('猜字谜')
#先给出guess赋值(赋一个绝对不等于secret的值)
guess = 0
#print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
print ('猜猜我心里想的是什么数字?', end = ' ')
while (guess != secret) and (times > 0):
temp = input ()
while not temp.isdigit():
temp = input('输入错误,请再次输入:')
guess = int (temp)
times = times - 1#每输入一次,可用机会就-1
if guess == secret:
print('wtf,你是我心里的蛔虫吗?')
else:
if guess > secret:
print('大了大了!!')
else:
print('小了小了!!')
if times > 0:
print ('再试一次吧:', end = ' ')
else:
print('机会用完了,退下吧。')
print('游戏结束,又被坑了吧!!')
1 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)
这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。
Python 2.7版本中 整除/ 与 3.0区别!
import random
i = 4
while i > 0:
year = raw_input("请输入年份:")
i -= 1
while not year.isdigit():
year = raw_input("抱歉,您的输入有误,请输入一个整数:")
ryear = int(year)
if ryear/400.0 == int(ryear/400.0):
print("是闰年")
break
elif ( ryear/4.0)==int(ryear/4.0) and (ryear/100.0) != int(ryear/100.0):
print("还是闰年")
else:
print("不是闰年")
Python 3.5:
- temp = input('请输入一个年份:')
- while not temp.isdigit():
- temp = input("抱歉,您的输入有误,请输入一个整数:")
- year = int(temp)
- if year/400 == int(year/400):
- print(temp + ' 是闰年!')
- else:
- if (year/4 == int(year/4)) and (year/100 != int(year/100)):
- 10. print(temp + ' 是闰年!')
- 11. else:
- 12. print(temp + ' 不是闰年!')