当前位置: 首页 > 知识库问答 >
问题:

If else语句未给出所需的输出[重复]

钱峻
2023-03-14
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”。但是设计的代码一直返回“A”,尽管今天是“星期六”(14/10/2017)。我怎么能修好它?

共有3个答案

墨承泽
2023-03-14

你的if陈述等价于

if (today_day == 'Wednesday') or 'Thursday':

False或无空字符串将始终计算为True。

我会把这个实现为

weekday = date.today().weekday()
place = 'A' if weekday in [3,4] else 'B'
山越
2023-03-14

你写的相当于两个条件的布尔

(today_day == 'Wednesday') or 'Thursday'

threed的计算结果总是True(因为在python中非空字符串就是这样计算的)。

相反,您可以编写(更惯用的)

today_day in ('Wednesday' or 'Thursday')

today == 'Wednesday' or today == 'Thursday'
柯阳曦
2023-03-14

将您的条件更改为:

if today_day == 'Wednesday' or  today_day == 'Thursday':

或:

if today_day in ('Wednesday', 'Thursday'):

在您的版本中,“星期四”是一个非空字符串,因此当作为布尔表达式的原子部分进行计算时,总是真实的。

 类似资料:
  • 我试图在Python中声明一个动态列表,并对其进行各种操作,但在操作之后,它没有给出所需的输出。 当我像一样将列表声明为一般长度时,它工作得很好:

  • 我正在尝试通过使用if else条件在我的代码中的textbox上添加验证 我在textbox上添加了focusListener,当我从textbox中删除焦点时,它将检查条件 我还在chekbox旁边创建了一个标签,它将根据条件显示文本 如果textbox中的文本不等于“Hi”,则应在textbox旁边的标签中打印“Hello 否则应打印“再见” 请帮忙

  • 问题内容: 嗨,我有一个表测试,其结构如下: 现在,我需要查询该表(测试),以便获得以下输出。 Oracle 11g中的sql查询是否可以实现?11g中的PIVOT功能是否可以实现? 问题答案: 不,它不能用来完成,但是 可以 用来完成: 当不可用时,我通常会像这样取消透视:

  • 我在家庭作业中使用Eclipse,我真的很挣扎。目标是编写一个工资单程序,让用户输入他们的姓名、工作时间、工资率、联邦和州预扣税,然后输出他们预扣金额的计算信息以及他们的净工资。 我使用了我熟悉的println语句来显示输出,但老师希望我们使用函数,我根本无法让它工作。如果我使用println语句,所有的值都会填充,但由于某种原因,我无法让printf执行相同的操作。我错过了什么?如果我使用pri

  • 问题内容: 我正在尝试“ PIVOT”,但尚未达到预期的结果。 问题答案: 这应该工作:

  • 问题陈述:根据问题,有一个二叉树,其根节点3左子节点9,右子节点20,当20作为根节点时,其左子节点15,右子节点7。9没有孩子。所以结构看起来[3,9,20,null,null,15,7]。 在此二叉树中查找级别顺序遍历。水平顺序遍历/宽度优先搜索 输出:[ [3], [9,20], [15,7] ] 为了实现这个方法,我创建了一个树结构,如 我还创建了另一个类,返回这个输出列表 主要功能出现困