桐祈 2023-04-01 06:11 采纳率: 42.9%
浏览 8
已结题

关于逻辑运算符#python#的问题,如何解决?

逻辑运算符(python)理解
a = 12
b = 20
#and
if(a and b):
    print("变量a和b都为true")
else:
    print("变量a和b有一个不为true")

#or
if(a or b):
    print("变量a和b都为true,或其中一个变量为true")
else:
    print("变量a和b都不为true")
    
#修改变量a的值
a = 0
if(a and b):
    print("变量a和b都为true")
else:
    print("变量a和b有一个不为true")


运行结果:

变量a和b都为true
变量a和b都为true,或其中一个变量为true
变量a和b有一个不为true

######问题:
主要是修改变量a的值下面这块。
个人理解,不应该是重新定义的a, a返回的是true嘛

  • 写回答

1条回答 默认 最新

  • Taylor 淡定哥 2023-04-01 06:24
    关注

    任何非零数值或非空容器都被视为True,而0或空容器被视为False。在你的代码中,当a的值为12时,它被视为True,因此第一个if语句输出“变量a和b都为true”,第二个if语句输出“变量a和b都为true,或其中一个变量为true”。

    但是,将a的值更改为0时,a被视为False,因此第三个if语句输出“变量a和b有一个不为true”。

    请注意,逻辑运算符and和or的工作原理如下:

    and:如果所有表达式都为True,则返回最后一个表达式的值,否则返回第一个为False的表达式的值。
    or:如果至少有一个表达式为True,则返回第一个为True的表达式的值,否则返回最后一个表达式的值。
    在第三个if语句中,当a的值为0时,a为False,因此整个表达式的值为False,因此输出“变量a和b有一个不为true”。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    桐祈 2023-04-01 07:19

    原来是这样,我还以重新定义a,也会被判断为false。第一句话就点醒了我,十分感谢您的回答😁😁

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 4月1日
  • 创建了问题 4月1日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部