我列表中的最后一个值不会转换为整数

The last value in my list will not convert into integer

我正在编写一个代码,我在其中从用户那里获取值,直到他们输入 'q'。然后我必须按升序打印偶数。我的程序是怎么做的,我刚刚运行变成了一个小问题不知道怎么解决。

我的代码是:

integer = []
g = 7
while g > 1:                # Initiate loop
    num = input('Enter an integer or press q to quit.  ')
    if num == 'q':
        break
    integer = list(map(int, integer))
    if num % 2 == 0:
        integer.append(num)


integer.sort()
print(integer)

运行 这段代码给我的错误是并非所有字符串都已转换。所以我然后删除了第二个 if 语句:

 if num % 2 == 0:
        integer.append(num)

擦除这个我可以看到列表中的最后一个值不会转换为整数。我不知道为什么会这样,我尝试了无数次字符串列表到整数列表的转换,但它们都从不转换最后一个值。有人知道这是为什么吗?

问题是 num 是用户输入的字符串,您必须像这样将其转换为整数

if int(num) % 2 == 0:
    integer.append(int(num))

你可以这样做:

evens = []

while True:                # Initiate infinite loop
    num = input('Enter an integer or press q to quit.  ')

    if num == 'q':
        break

    num = int(num)  #convert the num to int

    if num % 2 == 0:
        evens.append(num)


evens.sort()
print(evens)

更正后的代码:

integer = []
g = 7
while g > 1:                # Initiate loop
    num = input('Enter an integer or press q to quit.  ')
    if num == 'q':
        break
    num = int(num) #convert input to integer
    if num % 2 == 0:
        integer.append(num)


integer.sort()
print(integer)