def alarm_clock(day, vacation):
    if day == 0 or day == 6 and vacation != True:
        return "10.00"
    else: 
        return "off"

print(alarm_clock(0, True))

为什么返回"10.00"?在我看来,它应该返回"关".是的,day等于0,但vacation为True,IF语句的第一行指出,只有当vacation为非True时,才应执行它.

推荐答案

在Python中,andor绑定得更紧.所以你的陈述相当于:

if day == 0 or (day == 6 and vacation != True):

要获得正确的结果,您必须自己将优先级括起来:

if (day == 0 or day == 6) and vacation != True:

Python相关问答推荐

在Python中为变量的缺失值创建虚拟值

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

运行Python脚本时,用作命令行参数的SON文本

按顺序合并2个词典列表

ODE集成中如何终止solve_ivp的无限运行

如果值发生变化,则列上的极性累积和

我如何根据前一个连续数字改变一串数字?

Odoo 16使用NTFS使字段只读

无法连接到Keycloat服务器

dask无groupby(ddf. agg([min,max])?''''

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

下三角形掩码与seaborn clustermap bug

手动设置seborn/matplotlib散点图连续变量图例中显示的值

Python—转换日期:价目表到新行

找到相对于列表索引的当前最大值列表""

GPT python SDK引入了大量开销/错误超时

为什么dict. items()可以快速查找?

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

启动线程时,Python键盘模块冻结/不工作

一维不匹配两个数组上的广义ufunc