python程序问题,如图,1==2,应该变成True才对,为什么是数字?
发布网友
发布时间:2022-05-06 22:41
我来回答
共4个回答
热心网友
时间:2023-09-28 23:35
因为True本身就相当于是整数1.
>>> True+1
2
你的代码改成这样就正常了:
def copy_me(list1):
list_copy=list1[:]
for i in range(0,len(list_copy)):
if isinstance(list_copy[i],str):
list_copy[i]=list_copy[i].upper()
elif isinstance(list_copy[i],bool):
list_copy[i]=(not list_copy[i])
elif isinstance(list_copy[i],(int ,float)):
list_copy[i]=list_copy[i]+1
elif isinstance(list_copy[i],list):
list_copy[i]='List'
return list_copy
print copy_me([1,2,3,4,1==2,'a',[1,2,3,4]])
懂了吧?
>>> isinstance(True,(int ,float))
True
>>> isinstance(1,(int ,float))
True
热心网友
时间:2023-09-28 23:35
[1,2,3,4, 1==2, 'a', [1,2,3,4]]
分别对应 [2,3,4,5, Ture, 'A', 'List']
为啥是Ture,而不是True。这个真心不知道。。。反正我的是True
>>> not 1==2
True
热心网友
时间:2023-09-28 23:36
你看错位置了,本来就是数字的+1,bool的取反。1==2取反就是你的结果中的Ture(这个是美式拼法?呵呵)追问结果中没true啊
热心网友
时间:2023-09-28 23:36
实验了一下,同样求解释,知道了说一声追问。。。