我哪儿错了?第5课闲聊之Python的数据类型课后测试题
Hello大家,我按照第五课学习内容写了一篇代码(请看下方),目的是猜中目标数字5.5,并且在用户输入的不是小数的时候提醒他们,但是在执行的时候,却出现了这样的问题:
不妨猜一下小甲鱼现在心里想的是哪个数字:5
抱歉,输入不合法,请输入小数 5.6
没了
也就是说,在用户被提醒输入小数后,小数被输入进去,但是却没有进入else,进行guess(答案)与用户输入关系的判断,这是为什么呢?求大神指点解答。
——————————————————————————————————————————————————————————————————————————————————————————————————————
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
ifnot 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('没了')
——————————————————————————————————————————————————————————————————————————————————————————————————————
本帖最后由 baige 于 2020-8-26 08:36 编辑
进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个 temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
ifnot 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('没了') 我有个疑问,既然要判断输入是否为浮点型,为啥要
guess = int(temp) 昨非 发表于 2020-8-26 08:46
我有个疑问,既然要判断输入是否为浮点型,为啥要
我觉得第一次是故意这样设置的,后面的就是写错了 baige 发表于 2020-8-26 08:49
我觉得第一次是故意这样设置的,后面的就是写错了
测试用的吧,明白了 temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
ifnot 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('没了')
下边循环判断的缩进完全可以改,
如图https://s1.ax1x.com/2020/08/26/d257hn.png baige 发表于 2020-8-26 08:49
我觉得第一次是故意这样设置的,后面的就是写错了
嗯嗯,是写错了 baige 发表于 2020-8-26 08:28
进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个
那进入if语句然后提醒我输入后,不管我输入的内容是什么,都会直接跳到下一步print(没了)是吗? 昨非 发表于 2020-8-26 09:01
下边循环判断的缩进完全可以改,
如图
同意,谢谢! baige 发表于 2020-8-26 08:28
进入if语句然后提示输入,你输入之后当然不会去执行下面的else,
if, else 只会执行一个
我还有一个疑问,即在我原先写的这个程序里,即使我一开始输入5.7(小数),它都不会直接进入else进行判断,而是还是出现“抱歉,输入不合法,请输入小数‘”,这是为什么捏? 本帖最后由 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) ifnot isinstance(temp, float):
print( '抱歉,输入不合法,请输入小数' , end=' ')
temp= input( )
guess= float(temp)
这一段只是再让你输入1个数字 baige 发表于 2020-8-26 16:56
guess = int(temp)
一开始输入5.7应该报错才对
guess = float(temp)如果是这样的话你只是把浮点型的t ...
嗯嗯,完全理解了,谢谢你的答案,很有帮助。 while 后面的if guess == 5.5:
print('哇')
print('哼')有必要吗?
页:
[1]