Python:当我有一个if语句和一个分配给3个整数的打印件时,我输入
发布时间:2020-12-20 12:22:09 所属栏目:Python 来源:网络整理
导读:对不起,如果我只是愚蠢,但我是 python的新手.当我执行此操作并键入一个大于7的数字时,它会给出5,6和7的答案,并且 7打印.它告诉我,“我希望它越过边界变成令人敬畏的”,然后“那真棒”. P.S我正在使用 Python 3 print ('What is your name?')LeName = input (
对不起,如果我只是愚蠢,但我是
python的新手.当我执行此操作并键入一个大于7的数字时,它会给出5,6和7的答案,并且> 7打印.它告诉我,“我希望它越过边界变成令人敬畏的”,然后“那真棒”.
P.S我正在使用 Python 3 print ('What is your name?') LeName = input () print (' How are you,' + LeName + '?') print ('On a scale of one to ten,what would you rate your day so far?') mood = int (input()) if mood <4: print ('That's horrible,I hope it gets better.') if mood == '5' '6' or '7': print('Hope it crosses the border into awesome! :)') if mood > 7: print('That's awesome!') print () 在发布后大约半小时我想到了它并且如果情绪=’5”6’的’7’则改变,如果情绪> =和情绪<但我仍然很好奇为什么会这样.谢谢你的答案. 解决方法
这个说法:
if mood == '5' '6' or '7': 被解析为: if (mood == '56') or '7': 这真的只是’7’或者是真的,因为心情的类型是int而’56’的类型是str. 发生的事情是python正在将自动字符串连接应用于’5”6’以将其变为’56’.它不等于情绪,因为情绪是一个int而int和str类型永远不会相等.所以,你有False或’7′.但’7’是一个类似于true的值,因此该块将始终执行.您可能想要的更像是: if mood < 4: ... elif 5 <= mood <= 7: ... else: ... 在哪里我用operator chaining来做我认为你在尝试的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |