判断输入框是不是数字_写一个数字小游戏

最近开始在学用Python做数据分析,昨天课程,老师留了一个写猜数字小游戏代码的作业,捣鼓了一个多小时,最后还请了大神帮忙

题目是这样的:

编写猜数字小游戏的代码:输入一个数字,分别针对猜对数字、猜错数字、输入错误给予判断

作为一个没写过代码的小白,拿到题目后我什么也没分析,直接按照题目给的条件开始写了

a = int(input('请输入一个数字:'))
if(a==1):
print('恭喜你,猜对了')
elif(a!=1):
print('很遗憾,你猜错了,a的值为',a)
elif(a.isdigit() == False):
print('输入错误')

我还自作聪明的给a定义了一个int,但是结果毫不意外地报错了,我也没指望一次就能跑通

在这里,我还没意识到一个最底层的严重问题,就是判断输入内容是不是数字应该放在最开始(感谢大神最后指出)。我一直被a的类型所困扰:

①如果a从一开始被定义为int型,那么在输入str时,与a的int矛盾会报错;

②如果a从一开始定义为str,那么在判断是不是1的时候,因为1是int,就永远不会等于1,且永远不会运行到第三个判断;

最后在大神的提醒下,我改变了一下判断顺序:

a = input('请输入一个数字:')
if(a.isdigit() == False):
print('输入错误')
elif(a==1):
print('恭喜你,猜对了')
elif(a!=1):
print('很遗憾,你猜错了,a的值为',a)

但是这个还是有问题的,还是之前的问题2,a的类型和1不同,导致永远无法作比较。所以为了解决这个问题,我想到了一个不完美的抖机灵解决方法,把1变为字符型

elif(a=='1'):

这样代码最终算是跑通了,不过大神后面也给了种解法,就是一开始定义a为字符型,后面在把a转型为int,这样就能比较了

a = input('请输入一个数字:')
if(a.isdigit() == False):
print('输入错误')
else:
a = int(a)
if (a==1):
print('恭喜你,猜对了')
else:
print('很遗憾,你猜错了,a的值为', a)

感谢大神大晚上被我拉着,不厌其烦的给我答疑ღ( ´・ᴗ・` )

大神最近在重新整理他的博客,友情推广:https://zhangze.me/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值