from datetime import date
import calendar
my_date = date.today()
today_day = calendar.day_name[my_date.weekday()]
if today_day == 'Wednesday' or 'Thursday':
place = 'A'
else:
place = 'B'
最初,我想在'今天'是'星期三'或'星期四'时将地点设置为'A',否则为'B'。但是设计的代码尽管今天是'星期六'(2017年10月14日),仍然会回归'A'。我怎么能解决它?
答案 0 :(得分:3)
将您的条件更改为:
if today_day == 'Wednesday' or today_day == 'Thursday':
或:
if today_day in ('Wednesday', 'Thursday'):
在你的版本中'Thursday'
是一个非空字符串,因此在被评估为布尔表达式的原子部分时总是很简洁。
答案 1 :(得分:2)
您的if语句与
等效if (today_day == 'Wednesday') or 'Thursday':
和False或'none empty string'将始终评估为True。
我会将其实现为
weekday = date.today().weekday()
place = 'A' if weekday in [3,4] else 'B'
答案 2 :(得分:2)
你所写的内容相当于两个条件的布尔or
(today_day == 'Wednesday') or 'Thursday'
Thursday
总是求值为True
(因为这是在python中评估非空字符串的方式)。
相反,你可以写(更惯用)
today_day in ('Wednesday' or 'Thursday')
或
today == 'Wednesday' or today == 'Thursday'
答案 3 :(得分:0)
问题是你在问if (today_day == 'Wednesday') or 'Thursday'
。 'Thursday'
评估为True
,因为它不是空字符串,因此place
始终为A
。你需要做的是
if today_day == 'Wednesday' or today_day == 'Thursday':
place = 'A'
else:
place = 'B'