从输入在python中使用boolean

2024-10-01 11:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

   PhoneValue=0
   if (condition== "new"):
        PhoneValue=int(PhoneValue+10)
    else:
        PhoneValue=int(PhoneValue+9)
    if GPS==bool(input("true")):
        PhoneValue=int(PhoneValue+1)
    else:
        PhoneValue=int(PhoneValue)

    if WiFi==eval(bool(input("true"))):
        PhoneValue=int(PhoneValue+1)
    else:
        PhoneValue=int(PhoneValue)

    if camera==eval(bool(input("true"))):
        PhoneValue=int(PhoneValue+1)
    else:
        PhoneValue=int(PhoneValue)
    global PhoneValue

这是我的密码。我应该能够输入条件,全球定位系统,摄像头,和WiFi和代码评估输入,并给出每个条件的分数。如果手机是新的,得10分,如果用了,得9分。对于GPS、摄像头和WiFi,它希望我使用布尔值,要么给它一个正确的分数,要么不给它假分数。我想知道如何将输入字符串转换为布尔值,以便将其添加到phone值中?在


Tags: truenewinputifevalcondition条件else
1条回答
网友
1楼 · 发布于 2024-10-01 11:26:40

这个代码有很多错误。首先,input()command is defined

^{bq}$

这意味着对input("true")的调用在控制台上打印“true”,并等待一行输入。那不是你希望的。在

你对eval的使用不好。几乎每次在用户输入上使用eval都是一个问题。但你在这里意外地救了自己:eval(bool(text))是多余的。bool()唯一可以返回True或{}这两个都不危险,但是由于您已经有了一个布尔值,所以对它的求值没有任何作用。在

将整数加法的结果转换为int()是没有用的,if/else子句可以更清楚地写为:

if input("Is there a GPS? "):
    PhoneValue += 1

不需要else子句。不幸的是,这几乎没有机会得到正确的输入。如果我输入“True”,那么if块将被触发。如果我写“no”、“false”或“JosEduSol”也会触发它,它们也会被评估为True。最后的宣言

^{pr2}$

最后一行完全没有做什么。实际上,您可能应该忘记global的存在,因为大多数人都不正确地使用它。在

代码中有更多的错误,你应该从老师那里得到帮助或者得到更好的学习资源。在

相关问题 更多 >