关于Python的布尔值为False的数据情况、Python while True再联系结合C语言的无限循环逻辑的疑惑解(何时为True或False的疑惑小帮助)

文章讲述了Python中布尔类型的特性,以及与C语言中数值0/1作为布尔值的比较。作者通过实例解析了C语言中`while`循环对布尔值的依赖,并提到了如何在Python中检测数据的布尔状态,如`is_prime`函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黑马程序员《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 的元素个数。

更远纠结之路:C语言中return 0和return 1和return -1_return1-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值