如何比较列表中的项目以找到奇数并打印它们?

2024-04-19 14:41:25 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的问题使用函数get\u numbers()从用户处读取整数。定义了三个未完成的函数,它们应该只打印用户输入的某些类型的数字。完成未完成的函数,必要时添加循环和分支。将输出与以下示例匹配:

数字是:5 99-44 0 12

我已经知道如何完成第一个函数了。 很难完成奇数和负数的比较。你知道吗

因为某种原因

def print_odd_numbers(numbers):
    if numbers % 2 == 1:
    print('Odd numbers:', numbers)

不起作用?你知道吗

size = 6

def get_numbers(num):
    numbers = []
    user_input = input('Enter %s integers:\n' % num)

    i = 0
    for token in user_input.split():
        number = int(token)     # Convert string input into integer
        numbers.append(number)  # Add to numbers list

        print(i, number)
        i += 1

    return numbers

def print_all_numbers(numbers):
    # Print numbers
    print('Numbers:')

def print_odd_numbers(numbers):
    # Print all odd numbers
    print('Odd numbers:')

def print_negative_numbers(numbers):
    # Print all negative numbers
    print('Negative numbers:')

nums = get_numbers(size)
print_all_numbers(nums)
print_odd_numbers(nums)
print_negative_numbers(nums)

Enter 5 integers:
0 5
1 99
2 -44
3 0
4 12
Numbers: 5 99 -44 0 12
Odd numbers: 5 99
Negative numbers: -44

Tags: 函数用户numberinputgetdef数字all
2条回答

代码无法工作,因为numbers是一个数字列表。请尝试以下代码:

def print_odd_numbers(numbers):
    print('Odd numbers: ')
    for n in numbers:
        if n % 2 == 1:
            print(n, end=' '))

您也可以使用列表:

def print_odd_numbers(numbers):
    odd = [n for n in numbers if n % 2 == 1]
    print('Odd numbers:', ' '.join(map(str, odd)))

模数需要==0才能被视为偶数和if数%2!=0则它将被读取为奇数

相关问题 更多 >