|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在论坛中004讲的课后习题把文字游戏进行了修改,而在005讲的课后习题的修改答案不是基于004讲课后习题答案之上的
然后自己在做题时候遇到了瓶颈,不知道把“while not isinstance(temp,int)”这句话加在语句哪里
我个人觉得这句话还是得修改的,烦请论坛大神指点迷津,谢谢~
- import random
- times = 3
- secret = random.randint(1,10)
- print('---------------------------1234567890---------------------------')
- guess = 0# 这里先给guess赋值(赋一个绝对不等于secret的值)
- print('不妨猜一下现在想的是哪个数字:',end='')
- while (guess != secret) and (times > 0):
- temp = input()
- guess = int(temp)
- times = times - 1# 用户每输入一次,可用机会就-1
- if guess == secret:
- print('你是蛔虫么?!')
- print('猜对了也没有奖励!')
- else:
- if guess > secret:
- print('大了大了')
- else:
- print('小了小了')
- if times > 0:
- print('再试一次吧:',end='')
- else:
- print('机会用完了')
- print('游戏结束')
复制代码
input返回的是字符串类型,用type,isinstance判断永远也是str
http://www.runoob.com/python/python-func-input.html
这里改成用isdigit() 代码如下:
- import random
- times = 3
- secret = random.randint(1,10)
- print('---------------------------1234567890---------------------------')
- guess = 0# 这里先给guess赋值(赋一个绝对不等于secret的值)
- print('不妨猜一下现在想的是哪个数字:',end='')
- while (guess != secret) and (times > 0):
- temp = input()
- while not temp.isdigit():
- print("输入不合法,请重新输入:",end='')
- temp = input()
- guess = int(temp)
- times = times - 1# 用户每输入一次,可用机会就-1
- if guess == secret:
- print('你是蛔虫么?!')
- print('猜对了也没有奖励!')
- else:
- if guess > secret:
- print('大了大了')
- else:
- print('小了小了')
- if times > 0:
- print('再试一次吧:',end='')
- else:
- print('机会用完了')
- print('游戏结束')
复制代码
|
|