利用生成器实现猜数字游戏
def guess_number(input_age):
if input_age == 'quit':
return
# 定义初始值
if input_age > 100:
input_age = 42 # 42 是一个谜一样的数字,其实可以换成13-100中的任何数
if input_age < 0:
input_age = 0
prize = [0, 10, 15]
age = [(0-0.1,3+0.1), (4-0.1,12+0.1), (13-0.1,100)]
d = dict(zip(age,prize))
# 转化为生成器
for b,e in d:
if b<input_age<e:
yield d[(b,e)]
def main():
while 1:
age = input('请输入年龄')
try:
if age.replace('-','').isdigit():
print(next(guess_number(int(age))))
else:
next(guess_number(age))
except StopIteration:
print('结束')
break
if __name__ == '__main__':
main()
这段代码是可以优化的,可以设置相关的值与界限关联