所以我想知道如何打印偶数位数多于奇数位数的数字这是我的代码:

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)

10-07 14:48