Jerry~Mouse 发表于 2021-8-21 17:25:36

格式问题

a = ['w',1,2,3,4,5,6,7,8,8,3.2,4.3]
sum = 0
for each in a:
    if type(each) == (type(1) ortype(1.1)):
      sum += each
print(sum)

type那一段为什么不能合在一起写 而只能写成 if type(each) == type(1) or type(each) == type(1.1):
是有什么特殊的要求吗

青出于蓝 发表于 2021-8-21 17:31:43

本帖最后由 青出于蓝 于 2021-8-21 17:35 编辑

(type(1) ortype(1.1))=type(1)

青出于蓝 发表于 2021-8-21 17:32:46

本帖最后由 青出于蓝 于 2021-8-21 17:35 编辑

or用法
0 or 1
结果:
1

or只会返回第一个真
因为 0是假,1是真,所以返回1
例如:
3 or 4
3为真 返回 3

Jerry~Mouse 发表于 2021-8-21 17:39:04

青出于蓝 发表于 2021-8-21 17:32
or用法
0 or 1
结果:


不是很明白,那type(1)和type(1.1)怎么分析呢,他们也有真假之分吗 但是没有判定真假的条件啊(我现在还是完全没有理解or的用法)

青出于蓝 发表于 2021-8-21 17:43:18

Jerry~Mouse 发表于 2021-8-21 17:39
不是很明白,那type(1)和type(1.1)怎么分析呢,他们也有真假之分吗 但是没有判定真假的条件啊(我现在还 ...

这个好像没有真假之分。但type(1) or type(1.1)这个语句会返回type(1).

青出于蓝 发表于 2021-8-21 17:45:07

Jerry~Mouse 发表于 2021-8-21 17:39
不是很明白,那type(1)和type(1.1)怎么分析呢,他们也有真假之分吗 但是没有判定真假的条件啊(我现在还 ...

or语法:
语句:x or y
or指"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。

Jerry~Mouse 发表于 2021-8-21 17:47:56

青出于蓝 发表于 2021-8-21 17:43
这个好像没有真假之分。但type(1) or type(1.1)这个语句会返回type(1).

我能这么理解吗,or两边判定True和False,两边都是True的话,返回前一个值,然后只要or两边是非0数,都视为Ture来处理?

青出于蓝 发表于 2021-8-21 17:49:58

Jerry~Mouse 发表于 2021-8-21 17:47
我能这么理解吗,or两边判定True和False,两边都是True的话,返回前一个值,然后只要or两边是非0数,都视 ...

不是的
是这样,如果or前为真,则返回or前的值,否则返回后面的值
例:
>>>True or False
True
>>>False or False
False
(这里的False是后面那个)

Jerry~Mouse 发表于 2021-8-21 17:51:25

青出于蓝 发表于 2021-8-21 17:49
不是的
是这样,如果or前为真,则返回or前的值,否则返回后面的值
例:


哦哦 好的 我明白了 谢谢
页: [1]
查看完整版本: 格式问题