检查逗号分隔字符串中的数字是奇数还是偶数

2024-05-06 11:57:17 发布

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

我需要写一个程序来检查逗号分隔字符串上的每个数字是偶数还是奇数

我必须使用一个for循环,我的代码如下:

getallen = '12, 3, 7, 25, 771, 45, 6, 98, 55, 546'

for number in getallen:
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

输出应如下所示:

12 is even
3 is odd
7 is odd etc etc.

Tags: 字符串程序numberforisetc数字int
3条回答

您的代码无法工作,因为getallen是字符串,而不是数组。您需要首先使用getallen = getallen.split(',')将其转换为数组

您的字符串是一个元组文字,因此您可以使用^{}将其安全地转换为整数元组。这可以直接在for循环中使用

import ast
getallen = '12, 3, 7, 25, 771, 45, 6, 98, 55, 546'

for number in ast.literal_eval(getallen):
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

Matt说得对,你迭代的是一个字符串,而不是一个数组,但是在分割之后,你还需要将每个值转换成一个数字。有几种方法可以做到这一点:

您可以使用map将数组的每个项转换为一个数字,方法是使用int

for number in map(int, getallen.split(',')):
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

或者,您可以在测试时转换每个数字:

for number in getallen.split(','):
    if int(number) %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

这两方面都将产生:

12 is even
3 is odd
7 is odd
25 is odd
771 is odd
45 is odd
6 is even
98 is even
55 is odd
546 is even

相关问题 更多 >