Python:我已经嵌套了不起作用的循环,我不知道为什么

所以我试图弄清楚如何打印数字比奇数更多的数字.这是我的代码:

inVal=(input("Please enter a positive integer: "))
evencounter=0
oddcounter=0

for i in range(1,int(inVal)):
    for j in range (1,len(str(i))):
        if(int(str(i)[j])%2==0):
            evencounter+=1
        else:
            oddcounter+=1
    if(evencounter>oddcounter):
        print(i)

怎么了?

最佳答案 正如zeet正确指出的那样,你需要重置每个数字上的计数器(它们甚至不需要是全局的),但是你有另一个问题.您需要从0开始第二个循环,而不是1.字符串索引从0开始.

inVal=(input("Please enter a positive integer: "))

for i in range(1,int(inVal)):
    evencounter=0 
    oddcounter=0
    for j in range (0,len(str(i))):
        if(int(str(i)[j])%2==0):
            evencounter+=1
        else:
            oddcounter+=1
    if(evencounter>oddcounter):
        print(i)
点赞