5695585 发表于 2020-5-5 11:57:08

and运算符的问题

本帖最后由 5695585 于 2020-5-5 12:00 编辑

004里面有个and与C的&&的区别


但是不理解哦

逻辑与返回不是应该只是TRUE或FALSE,1或0吗

为什么 1 &&3 会返回3呢

PS.
多问一个问题
print(' ', end = '')
这个表达,让print不输入回车
这个怎么理解呢

qiuyouzhi 发表于 2020-5-5 11:58:47

如果前后不为布尔值,而是数值的话,and会返回后者(如果都为真),否则返回假值。
这个就是Python和C的区别。

liuzhengyuan 发表于 2020-5-5 11:59:40

本帖最后由 liuzhengyuan 于 2020-5-5 12:18 编辑

是这样的,非零为真知道不
程序要先判断 1 是否为真,然后再判断 3 是否为真,最后判断完 3,就直接把 3 返回了
python 和 C 是不一样的……

因为 这个 print 有一个 end=' ' 它的意思就是在结尾插入……,默认是 回车

团子_大家族 发表于 2020-5-5 12:05:52

print('', end = '''), 表示 这个打印的语句以 end = '这里面的内容结尾', 默认的话这个内置 BIF 的 end = '\n',所以你才会看到换行

团子_大家族 发表于 2020-5-5 12:08:03

你可以 help(print) 看看:
print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
end 确实等于 '\n', 你学到函数那里就知道了, 这个叫默认参数

团子_大家族 发表于 2020-5-5 12:11:58

关于 and 的话 为真返回后面一个数, 假的话返回:False
而    or   的话 为真返回前面一个数, 假的话返回:False
例如:
>>>print(1 or 5)
>>>1
>>>print(1 and 5)
>>>5
你可以试试看,这就是和C的区别

永恒的蓝色梦想 发表于 2020-5-5 12:24:07

qiuyouzhi 发表于 2020-5-5 11:58
如果前后不为布尔值,而是数值的话,and会返回后者(如果都为真),否则返回假值。
这个就是Python和C的区 ...

我在搞C的时候就被这坑了……{:10_247:}

qiuyouzhi 发表于 2020-5-5 12:25:24

永恒的蓝色梦想 发表于 2020-5-5 12:24
我在搞C的时候就被这坑了……

{:10_250:}

zhaoximeng 发表于 2020-5-5 17:21:01

查看下小甲鱼的 逻辑短路
or 是 二者 有一样为真 就是真
所以 只要 or前面的为真 就显示or前面的
and 要求是 左右都为真 左边为真 还得看右边
右边为真的话 直接输出右边的值
页: [1]
查看完整版本: and运算符的问题