我认为您的思路是正确的,您只需稍微简化for循环中的逻辑:
def get_int_input(prompt):
num = -1
while True:
try:
num = int(input(prompt))
break
except:
print("Error: Enter an integer, try again...")
return num
def is_list_even(lst):
for x in lst:
if x % 2 != 0:
return False
return True
def is_list_odd(lst):
for x in lst:
if x % 2 == 0:
return False
return True
def main():
num_elements = get_int_input("Enter the number of elements: ")
my_list = []
for i in range(num_elements):
my_list.append(get_int_input(f"Enter element {i + 1}: "))
print(my_list)
if is_list_even(my_list):
print("all even")
elif is_list_odd(my_list):
print("all odd")
else:
print("mix of evens and odds")
if __name__ == "__main__":
main()
Enter the number of elements: 5
Enter element 1: 1
Enter element 2: 1
Enter element 3: 1
Enter element 4: 1
Enter element 5: 1
[1, 1, 1, 1, 1]
all odd
示例用法2:
Enter the number of elements: 3
Enter element 1: 2
Enter element 2: 2
Enter element 3: 2
[2, 2, 2]
all even
Enter the number of elements: 4
Enter element 1: 1
Enter element 2: a
Error: Enter an integer, try again...
Enter element 2: 2
Enter element 3: 1
Enter element 4: 7
[1, 2, 1, 7]
mix of evens and odds