不知道哪里错了《零基础入门学习Python》第05讲| 课后测试题..
本帖最后由 默默佩佩 于 2020-7-2 12:29 编辑import random
secret = random.randint(1,10)
print('---------我爱鱼c工作室----------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
while type(temp) != type(1):
print('抱歉,输入不合法,',end='')
temp = input('请输入一个整数:')
while guess != secret:
temp = input('哎呀,猜错了请重新输入:')
guess = int(temp)
if guess == secret:
print('哇草,你是小甲鱼心里的蛔虫吗?')
print('哼,猜中了也没有奖励')
else :
if guess > secret:
print('哥,大了大了~~')
else :
print('嘿,小了!小了!!')
print('游戏结束,不玩啦~~')
???
所以你的问题是啥?? 本帖最后由 Twilight6 于 2020-7-2 12:45 编辑
你的代码错在:input 返回的是字符串,所以 type(temp) 一定为 str,而永远不可能为int ,所以这个条件永远不会成立,照成你的死循环
你可以用字符串方法str.isdigit() 来判断字符串内是不是全是数字,你在学几课下去就会涉及到字符串方法的~:
isdigit() : 如果字符串只包含数字则返回 True,否则返回 False。
正确代码:
import random
secret = random.randint(1,10)
print('---------我爱鱼c工作室----------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while not temp.isdigit():
print('抱歉,输入不合法,',end='')
temp = input('请输入一个整数:')
guess = int(temp)
while guess != secret:
temp = input('哎呀,猜错了请重新输入:')
guess = int(temp)
if guess == secret:
print('哇草,你是小甲鱼心里的蛔虫吗?')
print('哼,猜中了也没有奖励')
else :
if guess > secret:
print('哥,大了大了~~')
else :
print('嘿,小了!小了!!')
print('游戏结束,不玩啦~~')
在你的基础上进行部分改进哈:
import random
secret = random.randint(1,10)
guess = 0
print('---------我爱鱼c工作室----------')
print("不妨猜一下小甲鱼现在心里想的是哪个数字:",end='')# end 参数是 print 的默认参数,默认值是 \n 换行符 我们这里重新将end 赋值,让 print 函数不换行~
while guess != secret:
temp = input()
while not temp.isdigit():
print('抱歉,输入不合法,', end='')
temp = input('请输入一个整数:')
guess = int(temp)
if guess > secret:
print('哥,大了大了~~')
print('请重新输入:',end='')
if guess < secret:
print('嘿,小了小了~~')
print('请重新输入:',end='')
if guess == secret:
print('哇草,你是小甲鱼心里的蛔虫吗?')
print('哼,猜中了也没有奖励')
print('游戏结束,不玩啦~~')
import random
secret = random.randint(1,10)
print('---------我爱鱼c工作室----------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
while type(guess) != type(1):
print('抱歉,输入不合法,',end='')
temp = input('请输入一个整数:')
while guess != secret:
temp = input('哎呀,猜错了请重新输入:')
guess = int(temp)
if guess == secret:
print('哇草,你是小甲鱼心里的蛔虫吗?')
print('哼,猜中了也没有奖励')
else :
if guess > secret:
print('哥,大了大了~~')
else :
print('嘿,小了!小了!!')
print('游戏结束,不玩啦~~') 第五行你的把转化数字类型的都给了guess,判断你又拿回之前的temp了 直接在input接受的时候转成整形就好了
import random
secret = random.randint(1,10)
print('---------我爱鱼c工作室----------')
temp = int(input("不妨猜一下小甲鱼现在心里想的是哪个数字:"))
guess = int(temp)
while type(temp) != type(1):
print('抱歉,输入不合法,',end='')
temp = input('请输入一个整数:')
while guess != secret:
temp = input('哎呀,猜错了请重新输入:')
guess = int(temp)
if guess == secret:
print('哇草,你是小甲鱼心里的蛔虫吗?')
print('哼,猜中了也没有奖励')
else :
if guess > secret:
print('哥,大了大了~~')
else :
print('嘿,小了!小了!!')
print('游戏结束,不玩啦~~')
qiuyouzhi 发表于 2020-7-2 12:31
好像运行不出来啊
Twilight6 发表于 2020-7-2 12:31
你的代码错在:input 返回的是字符串,所以 type(temp) 一定为 str,而永远不可能为int ,所以这个条 ...
不用你说的这个isdigit()行吗,还没学呢,我看课后测试答案没用这个呢 默默佩佩 发表于 2020-7-2 18:16
不用你说的这个isdigit()行吗,还没学呢,我看课后测试答案没用这个呢
可以用try-except,但是你的错误捕获也还没学哈~最接近的就是用这个了,你学几节课就到了 很快的~~
加油吧~
本帖最后由 Twilight6 于 2020-7-2 18:39 编辑
默默佩佩 发表于 2020-7-2 18:16
不用你说的这个isdigit()行吗,还没学呢,我看课后测试答案没用这个呢
我刚刚去看了下,第五讲已经学了 字符串方法了! Twilight6 发表于 2020-7-2 18:21
我刚刚去看了下,第五讲已经学了 字符串方法了!
感谢,知道了 1815702237 发表于 2020-7-2 14:42
直接在input接受的时候转成整形就好了
好像没运行出来
页:
[1]