鱼C论坛

 找回密码
 立即注册
查看: 2356|回复: 14

[已解决]我哪儿错了?第5课闲聊之Python的数据类型课后测试题

[复制链接]
发表于 2020-8-26 08:21:14 | 显示全部楼层 |阅读模式

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

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

x

Hello大家,我按照第五课学习内容写了一篇代码(请看下方),目的是猜中目标数字5.5,并且在用户输入的不是小数的时候提醒他们,但是在执行的时候,却出现了这样的问题:

不妨猜一下小甲鱼现在心里想的是哪个数字:5
抱歉,输入不合法,请输入小数 5.6
没了

也就是说,在用户被提醒输入小数后,小数被输入进去,但是却没有进入else,进行guess(答案)与用户输入关系的判断,这是为什么呢?求大神指点解答。


——————————————————————————————————————————————————————————————————————————————————————————————————————

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if  not isinstance(temp, float):
        print( '抱歉,输入不合法,请输入小数' , end=' ')
        temp= input( )
        guess= float(temp)
else:
    if guess == 5.5:
        print('哇')
        print('哼')
    while (guess != 5.5)  :
        temp = input("GIVE ANOTHER TRY:")
        guess = int(temp)
        if guess == 5.5:
            print('哇')
            print('哼')
        else:
            if guess>5.5:
                print('大了')
            else:
                print('小了')
print('没了')

——————————————————————————————————————————————————————————————————————————————————————————————————————
最佳答案
2020-8-26 08:28:24
本帖最后由 baige 于 2020-8-26 08:36 编辑

进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-26 08:28:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 baige 于 2020-8-26 08:36 编辑

进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-26 08:30:34 | 显示全部楼层
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if  not isinstance(temp, float):
    print( '抱歉,输入不合法,请输入小数' , end=' ')
    temp= input( )
    guess= float(temp)

if guess == 5.5:
    print('哇')
    print('哼')
while (guess != 5.5)  :
    temp = input("GIVE ANOTHER TRY:")
    guess = float(temp)
    if guess == 5.5:
        print('哇')
        print('哼')
    else:
        if guess>5.5: 
            print('大了')
        else:
            print('小了')
print('没了')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-26 08:46:45 | 显示全部楼层
我有个疑问,既然要判断输入是否为浮点型,为啥要
guess = int(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-26 08:49:41 From FishC Mobile | 显示全部楼层
昨非 发表于 2020-8-26 08:46
我有个疑问,既然要判断输入是否为浮点型,为啥要

我觉得第一次是故意这样设置的,后面的就是写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-26 08:56:13 | 显示全部楼层
baige 发表于 2020-8-26 08:49
我觉得第一次是故意这样设置的,后面的就是写错了

测试用的吧,明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-26 09:01:26 | 显示全部楼层
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if  not isinstance(temp, float):
    print( '抱歉,输入不合法,请输入小数' , end=' ')
    temp= input( )
    guess= float(temp)

if guess == 5.5:
    print('哇')
    print('哼')
while (guess != 5.5)  :
    temp = input("GIVE ANOTHER TRY:")
    guess = float(temp)
    if guess == 5.5:
        print('哇')
        print('哼')
    elif guess>5.5: 
        print('大了')
    else:
        print('小了')
print('没了')


下边循环判断的缩进完全可以改,
如图

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-26 16:38:45 | 显示全部楼层
baige 发表于 2020-8-26 08:49
我觉得第一次是故意这样设置的,后面的就是写错了

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

使用道具 举报

 楼主| 发表于 2020-8-26 16:44:37 | 显示全部楼层
baige 发表于 2020-8-26 08:28
进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个

那进入if语句然后提醒我输入后,不管我输入的内容是什么,都会直接跳到下一步print(没了)是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-26 16:45:44 | 显示全部楼层
昨非 发表于 2020-8-26 09:01
下边循环判断的缩进完全可以改,
如图

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

使用道具 举报

 楼主| 发表于 2020-8-26 16:52:11 | 显示全部楼层
baige 发表于 2020-8-26 08:28
进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个

我还有一个疑问,即在我原先写的这个程序里,即使我一开始输入5.7(小数),它都不会直接进入else进行判断,而是还是出现“抱歉,输入不合法,请输入小数‘”,这是为什么捏?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-26 16:56:02 | 显示全部楼层
本帖最后由 baige 于 2020-8-26 16:58 编辑
jackiepollock 发表于 2020-8-26 16:52
我还有一个疑问,即在我原先写的这个程序里,即使我一开始输入5.7(小数),它都不会直接进入else进行判 ...


guess = int(temp)
一开始输入5.7应该报错才对
guess = float(temp)如果是这样的话你只是把浮点型的temp给guess,但temp本身还是字符串(str)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-26 17:04:54 | 显示全部楼层
if  not isinstance(temp, float):
    print( '抱歉,输入不合法,请输入小数' , end=' ')
    temp= input( )
    guess= float(temp)
这一段只是再让你输入1个数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-26 17:31:47 | 显示全部楼层
baige 发表于 2020-8-26 16:56
guess = int(temp)
一开始输入5.7应该报错才对
guess = float(temp)如果是这样的话你只是把浮点型的t ...

嗯嗯,完全理解了,谢谢你的答案,很有帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 15:58:10 | 显示全部楼层
while 后面的if guess == 5.5:
        print('哇')
        print('哼')有必要吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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