python中while如何使用多条件判断呀,求大神解答
temp = input("你的成绩是多少呢?来输入他吧: ")number = int(temp)
while number >100 and number < 0:
temp = input("输入的内容有误重新输入吧: ")
number = int(temp)
if number >90:
print("您的成绩很优秀\n")
elif (number >80 and number <90):
print("您的成绩良好\n")
elif (number <80 and number >60):
print("你的成绩合格\n")
else:
print("fuck!\n")
例如这个简单的例子,运行后程序输入大于100或者小于0的数字,程序会直接忽略while直接运行if语句,之前学的是C现在真的有点懵逼不知道是什么原因求大神解答{:5_100:} 本帖最后由 昨非 于 2021-2-19 22:59 编辑
while number >100 and number < 0:
大于100 且 小于0,楼主咋想的啊???
这一条件根本不成立,while后面就相当于跟了false,不被跳过才怪呢?
应该是:(或)
while number >100 or number < 0:
temp = input("你的成绩是多少呢?来输入他吧: ")
number = int(temp)
while number >100 or number < 0: #只修改这里
temp = input("输入的内容有误重新输入吧: ")
number = int(temp)
if number >90:
print("您的成绩很优秀\n")
elif (number >80 and number <90):
print("您的成绩良好\n")
elif (number <80 and number >60):
print("你的成绩合格\n")
else:
print("fuck!\n")
测试:
你的成绩是多少呢?来输入他吧: 111
输入的内容有误重新输入吧: -10
输入的内容有误重新输入吧: 95
您的成绩很优秀 本帖最后由 Peteryo01223 于 2021-2-20 09:43 编辑
答:按你的问题所述,如果:运行后程序输入大于100或者小于0的数字,程序不会直接忽略while,也不会直接运行if语句,因为,你的输入正好符合了while 后面的条件,python 会直接运行这三行的,
while number >100 and number < 0:
temp = input("输入的内容有误重新输入吧: ")
number = int(temp)
即:python 会打印出一行字,“输入的内容有误重新输入吧:”,然后按code所述,把你重新输入的值赋值给 number,再重新判断一遍。
再次输入的值,如果又符合了 while 后面的条件,就二次循环刚才的步骤。
再次输入的值如果不符合 while 后的条件,则进入后面的 code, 四选一地打印出一个对输入值评价。 2楼说的对,楼主把or用成and了,改过来应该就好了 1.
temp = input("你的成绩是多少呢?来输入他吧: ")
number = int(temp)
这一行代码可以这样改进:number = int(input("你的成绩是多少呢?来输入他吧: "))
2.第二段代码的想法是:如果成绩小于0 或者是大于100.那么输入当然是错误的,所以这个条件应该是or 不是and,毕竟不是同时成立的,所以第二段这样改:
while number >100 or number < 0:
number = int(input("输入的内容有误重新输入吧: "))
3.第三段代码的问题还是一样的,在于你的对逻辑运算的不熟悉,当你想要的两个条件都同时成立(比如你必须是高,富,帅{:10_277:}才有白富美追你)才可以用and,如果是降低条件,那就其中之一也行吧(比如白富丑,只能要高或者富或者帅的人{:10_256:})所以这时候用or。综上,,同时成立——and,(降低条件)只有一个就行——or。最后,有个方便的地方是不等式的用法可以这样用,所以代码这样改进
if number >90:
print("您的成绩很优秀\n")
elif 80 <= number <90:
print("您的成绩良好\n")
elif 60<= number <80:
print("你的成绩合格\n")
else:
print("fuck!\n")
4完整的代码:number = int(input("你的成绩是多少呢?来输入他吧: "))
print('number is ',number)
while number >100 or number < 0:
number = int(input("输入的内容有误重新输入吧: "))
if number >90:
print("您的成绩很优秀\n")
elif 80 <= number <90:
print("您的成绩良好\n")
elif 60<= number <80:
print("你的成绩合格\n")
else:
print("fuck!\n")
5.建议,逻辑没搞清楚,回去再看看吧{:10_254:}(给个最佳呗) 昨非 发表于 2021-2-19 22:53
while number >100 and number < 0:
大于100 且 小于0,楼主咋想的啊???
这一条件根本不成立,while后 ...
大哥,你住在论坛吗{:10_243:} 4分钟就回复,大佬是不是编程做了自动提醒。。 Python初学者8号 发表于 2021-2-20 10:06
大哥,你住在论坛吗
最佳答案向来先到先得啊{:10_256:}
不至于不至于,恰巧看到了呗 昨非 发表于 2021-2-20 10:48
最佳答案向来先到先得啊
不至于不至于,恰巧看到了呗
每次都是打字太多,结果错失了前排,最佳被别人抢了{:10_277:}
昨天一进来,刷新,就看见你回答了{:10_250:} Daniel_Zhang 发表于 2021-2-20 12:47
每次都是打字太多,结果错失了前排,最佳被别人抢了
昨天一进来,刷新,就看见你回答了{:10 ...
大家都差不多
你看twilight大佬,比我快还比我正确、详细 昨非 发表于 2021-2-20 10:48
最佳答案向来先到先得啊
不至于不至于,恰巧看到了呗
起早贪黑写个答案容易吗我{:10_266:} 你把第一行的 and 改成or
页:
[1]