美文网首页
写一个数字小游戏

写一个数字小游戏

作者: 回首不过二三事 | 来源:发表于2019-08-22 09:03 被阅读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/

    相关文章

      网友评论

          本文标题:写一个数字小游戏

          本文链接:https://www.haomeiwen.com/subject/evjgsctx.html