写一个数字小游戏

2019-08-22  本文已影响0人  回首不过二三事

最近开始在学用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/

上一篇下一篇

猜你喜欢

热点阅读