所以我正在使用模运算来确定在“x”天的时间。我曾尝试使用break
命令来结束while
循环,但是当我这样做时会打印出所有循环的答案。这是我的一个循环的代码
while (x) == ('Monday') or ('monday'):
if round_4 == ".1":
print ("It will be Tuesday")
elif round_4 == ".2":
print ("It will be Wednesday")
elif round_4 == ".3":
print ("It will be Thursday")
elif round_4 == ".4":
print ("It will be Friday")
elif round_4 == ".5":
print ("It will be Saturday")
elif round_4 == ".6":
print ("It will be Sunday")
elif round_4 == ".7":
print ("It will be Monday")
elif round_4 == ".8":
print ("It will be Tuesday")
elif round_4 == ".9":
print ("It will be Wednesday")
elif round_4 == ".0":
print ("It will be Monday AGAIN")
else:
print ("Sorry, there has been a tecnical difficulty! Please try again!")
如果round_4
说“.2”,它会打印所有while循环的“.2”elif。
对不起,我有点像蟒蛇一样!
答案 0 :(得分:1)
所以我正在使用模运算来计算出它将会是什么日子" x"天数。
不,你不是。 Python在模数运算符%
:
>>> 29 % 7
1
您不需要循环或递归来解决此问题。
假设你有一个整数变量today
(周一零,一个星期二等),这是非常简单的数学:
return (today+x) % 7
然后,您可以使用词典在日期名称和数字之间进行转换。
答案 1 :(得分:0)
撇开这个循环是否是解决更大问题的好方法,当前while
循环没有结束的一个原因是因为你搞砸了这个条件。表达式(x) == ('Monday') or ('monday')
始终为true,因为==
运算符未分布在or
上。它相当于(x == 'Monday') or 'monday'
,并且由于任何非空字符串都是真实的,因此始终满足条件。
编写表达式的更正确的方法是x == 'Monday' or x == 'monday'
,或者x in ['Monday', 'monday']
。
但是,我建议在lower
字符串上使用upper
或x
方法并仅测试一个案例(这将允许任何形式的大小写):{{1 }}
另一个问题,指出Elizon的评论,是你永远不会在循环中改变x.lower() == 'monday'
的值,所以如果条件在开始时为真,它将永远保持为真。如果您只希望此代码最多运行一次,则可能需要x
而不是if
。