黑马程序员《Python快速编程入门》一段摘录:
“
布尔类型(bool)是一种特殊的整型,其值True对应整数1,False对应整数0
Python中常见的布尔值为False的数据如下:
(1)None
(2)任何空序列,如''''、()、[]
(3)空字典,如{}
(4)False(布尔本身)
(5)任何数字类型的0,如0、0.0、0j
Python中可以是使用bool()函数检测数据的布尔值
例bool("")、bool(0)打印为False;bool(1)打印为True
”
下文的详解:C语言中数值0和1与布尔值0和非零之间的区别与使用_c语言中0和1代表什么-CSDN博客
(博文有小错误,要结合评论)
下文:
笔者之前有错误的印象:有程序在正常运行,因为一本书上看到这个意思的话语——“在C语言中,任何非零的【数值】都被视为真值”,所以C语言我解释为,while后面为(True) or (1),因为现在程序正常运行(相对结尾return 0),就是可以无限循环。
其实那要是【数值】【数据】。之所以可以无限循环,原因其实是因为while是判断语句,要看括号里数据的布尔类型。无论Python还是C语言,填写了不加引号的True,它的布尔类型就是True,所以才可以实现无限循环,是这样的逻辑。
得到这些解的疑惑探究,之所以产生,是因为写这段代码:
def is_prime(n):
for g in range(2,n):
if n%g == 0:
return False#直接写return的话,返回空值并结束函数。也行。因为Python的None表示False
return True
ls=[23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]
for i in ls.copy():
if is_prime(i) == True:
ls.remove(i)
print(len(ls))
(那时看了标准答案,标准答案有False......)
原题:编写程序,实现将列表 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] 中的素数去除,并输出去除素数后列表 ls 的元素个数。