我们再学习两个广义上的定义:
广义上的True,包括True, 非空值 ,我们可以将其统称为True族。
广义上的False,包括 False,0, 空值(比如空白元组) ,我们可以将其统称为False族。
python进行逻辑运算与和或的时候比较聪明,不是在任何情况下都看完x和y的值再最终返回结果,它比较注重效率,如果只看完x便能得到结果,他会直接返回结果,不再去看y,具体流程可以看下面的流程图。

相当于x为true族的话,逻辑运算返回的结果为y,即由y来决定返回的最终结果;
x为False族的话,逻辑运算返回的结果为x, 不需要再去看y。
逻辑与运算只是返回x的值或者返回y的值。
wangxishi
2021-01-22
所有非零数值都相当于于True:可以理解not 0 是非零的意思,结果为True,那么not -2,为啥结果是False呢
wangxishi
2021-01-21
是你理解的意思。跳出while循环有两种情况,
第一种情况就是while后面的条件不满足了,但是从这个题目中来看,while后面是固定的常数True,所以这个条件一直满足。
第二种情况是执行循环的时候遇到break,直接跳出这个循环。
现在我们就是属于第二种情况
wangxishi
2021-01-21
可以这么理解吗,就是如果没有遇到"0",那么状态就永远是while True的状态,循环会一直进行下去,直到输入“0”break了 ,这个时候后就是False的状态了,这个while true 不成立,就会打破循环?
wangxishi
2021-01-21
这个问题我知道了,代码如下:
list1 = []
int1=0
while True:
int1=int1+1
a = input('请输入第' + str(int1) + '个元素:')
if a == '0':
print("结束")
break
else:
print(list1.append(a))
list1wangxishi
2021-01-20
我把代码改成了这样,但是为什么出不来列表呢
list1 = []
int1=0
while True:
int1=int1+1
a = input('请输入第' + str(int1) + '个元素:')
if a == '0':
print("结束")
break
else:
print(list1.append(a))wangxishi
2021-01-20
刚才看你代码的时候不够仔细,你写的还有错误的地方,我改了一下结果如下
list1 = []
int1=0
while True:
int1=int1+1
a = input('请输入第' + str(int1) + '个元素:')
if a == '0':
print("结束")
break
else:
list1.append(a)wangxishi
2021-01-20
感觉你这个应该已经是很简洁的代码了,估计没有什么更好的的代码了
我给你修改了一下如下
list1 = []
while True:
a = input('请输入第' + str(int + 1) + '个元素:')
if a == '0':
print("结束")
break
else:
list1.append(a)
一定不要把变量名字定义为list呀,因为list是python自带类,如果将列表名字定义为list,python会进入混乱状态
wangxishi
2021-01-20