鱼C论坛

 找回密码
 立即注册
查看: 1717|回复: 12

[已解决]不知道哪里错了《零基础入门学习Python》第05讲| 课后测试题..

[复制链接]
发表于 2020-7-2 12:27:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 默默佩佩 于 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('游戏结束,不玩啦~~')
最佳答案
2020-7-2 12:31:00
本帖最后由 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('游戏结束,不玩啦~~')


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-2 12:29:56 | 显示全部楼层
???
所以你的问题是啥??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 12:31:00 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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('游戏结束,不玩啦~~')


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-2 12:31:53 | 显示全部楼层
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('游戏结束,不玩啦~~')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 13:10:11 | 显示全部楼层
第五行你的把转化数字类型的都给了guess,判断你又拿回之前的temp了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 14:42:54 | 显示全部楼层
直接在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('游戏结束,不玩啦~~')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 18:15:07 | 显示全部楼层

好像运行不出来啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 18:16:22 | 显示全部楼层
Twilight6 发表于 2020-7-2 12:31
你的代码错在:input 返回的是字符串,所以 type(temp) 一定为 str,而永远不可能为  int ,所以这个条 ...

不用你说的这个isdigit()行吗,还没学呢,我看课后测试答案没用这个呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 18:17:43 | 显示全部楼层
默默佩佩 发表于 2020-7-2 18:16
不用你说的这个isdigit()行吗,还没学呢,我看课后测试答案没用这个呢



可以用try-except,但是你的错误捕获也还没学哈~最接近的就是用这个了,你学几节课就到了 很快的~~

加油吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 18:21:14 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-2 18:39 编辑

默默佩佩 发表于 2020-7-2 18:16
不用你说的这个isdigit()行吗,还没学呢,我看课后测试答案没用这个呢

111.png
我刚刚去看了下,第五讲已经学了 字符串方法了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-2 23:23:51 | 显示全部楼层
Twilight6 发表于 2020-7-2 18:21
我刚刚去看了下,第五讲已经学了 字符串方法了!

感谢,知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 23:24:38 | 显示全部楼层
1815702237 发表于 2020-7-2 14:42
直接在input接受的时候转成整形就好了

好像没运行出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 14:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表