python里那个偶数条件判断

python里那个偶数条件判断,我想要浮点数类型去做判断,不知道为什么总是无效

#100以内偶数累加:2+4=6....
i=0
a=0
b=0
while i<100:
    i+=1
    a+=1
    c=a%2
    if c==0:
        b+=a
print(b)
#上面是可正常运行的
i=0
a=0
b=0
while i<100:
    i+=1
    a+=1
    c=a/2
    if c!=float:
        b+=a
print(b)
#这段是问题代码,if语句执行了但毫无影响,没有头绪,想搞明白(我想的是如果不能整除就应该是浮点型对吧)

你没有对浮点数进行具体的判断:

i = 0
a = 0
b = 0
while i < 100:
    i += 1
    a += 1
    c = a / 2
    if c != int(c):
        continue
    b += a
print(b)



你是要判断c的类型,所以要先通过type()获取它的类型,不然你拿一个数字和一个类型做比较,当然永远是不相等的
type(c) != float

你的猜想是对的,c != float 的比较是有问题的。首先,float 是 Python 内置的浮点数类型,它并不是一个值,因此你想要比较的应该是 type(c) != float。其次,在这个计算中,如果 a 是奇数,c 应该是一个非整数的浮点数,而不是整数,因此你需要使用 c % 1 != 0 来判断 c 是否为整数。

正确的代码应该是这样的:

i = 0
a = 0
b = 0
while i < 100:
    i += 1
    a += 1
    c = a / 2
    if c % 1 != 0:
        b += a
print(b)

这个代码与之前的代码类似,但是使用了浮点数除法来判断 a 是否为偶数。如果 a 不能被2整除,则它的一半不是整数,因此 c % 1 != 0 的值为 True,此时将 a 加入到累加器 b 中。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^