第一道: 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
import random
secret = random.randint(1,10)
time = 3
guess= 0
print("猜猜我是几:",end="")
while (guess != secret) and (time>0):
temp = input()
time = time - 1
#
while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
guess = int(temp)
#1.首先两个重要的内容s.isdigit意为字符串s全为数字为真;s.isalpha意为字符串s全为字符为真。利用
s.is的方法识别输入是否正确可以有效地避免输入temp为str后一直保持str的情况,从而达到识别的目的。
2.guess与上面temp对齐因为是正确赋值后再取整赋值于guess。
if guess == secret:
print("you are a good boy")
else:
if guess <secret:
print("it is so small")
else:
print ("it is too big")
if time > 0:
print("再试一次吧:", end=" ")
else:
print("机会用光咯T_T")
print ("game over")
ps: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
#注意括号!!!!!!
第二题 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)
temp = input('请输入您现在的年份:')
while not temp.isdigit():
temp=input('输入错误请重新输入:')
#第一次编程在这里出错,isdigit一定加()
year = int(temp)
if not year%4 == 0:
print ('您输入的年份不为闰年!')
else :
print('您输入的年份为闰年!')
总结:关于is的运用,可以有效避免使用type函数和isinstance函数不能解决的input返回字符串的问题(input的返回值始终为字符串),而is是直接判断输入的类型而不是input的返回值,从而进行whlie的判断!