首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python使用For循环在列表中找到偶数,然后乘以2

Python使用For循环在列表中找到偶数,然后乘以2
EN

Stack Overflow用户
提问于 2019-09-18 00:07:59
回答 2查看 1K关注 0票数 0

所以我有一个脚本,需要阅读列表中的数字,告诉我哪些数字是奇数,哪些数字是偶数,如果这个数字是偶数,我需要它乘以1,然后乘以2。我已经非常接近了,但我似乎不知道我在哪里出错了。任何帮助都将不胜感激!

代码语言:javascript
复制
numbers = [1,2,3,4,5]
for n in numbers:
    if n%2 == 0:
        print(n,'is an even number.')
        for n in range(2,5,2):
            product = n
            print('Multiplying by 1 gives',product)
            product = product*2
            print('Multiplying by 2 gives', product)
    else:
        print(n,'is an odd number.')

我得到了以下输出:

1是一个奇数。

2是偶数。

乘1等于2

乘2等于4

乘1等于4

乘2等于8

3是一个奇数。

4是偶数。

乘1等于2

乘2等于4

乘1等于4

乘2等于8

5是一个奇数。

然而,我想要的输出应该如下所示:

1是一个奇数。

2是偶数。

乘1等于2

乘2等于4

3是一个奇数。

4是偶数。

乘1等于4

乘2等于8

5是一个奇数。

EN

回答 2

Stack Overflow用户

发布于 2019-09-18 00:18:42

简单地删除for n in range(2,5,2): for循环将给出所需的结果,它覆盖了n的值,从而给出了错误的结果。

代码语言:javascript
复制
numbers = [1, 2, 3, 4, 5]
for n in numbers:
    if n % 2 == 0:
        print(n, 'is an even number.')
        product = n
        print('Multiplying by 1 gives', product)
        product = product*2
        print('Multiplying by 2 gives', product)
    else:
        print(n, 'is an odd number.')
票数 1
EN

Stack Overflow用户

发布于 2019-09-18 00:18:34

我认为第二个for-循环可以省略。试试这个:

代码语言:javascript
复制
for n in numbers:
    if n%2 == 0:
        print(n,'is an even number.\nMultuplying',n,'by 1 
        gives',n,'\nMultiplying',n,'by 2 gives',n*2)

    else:
        print(n,'is an odd number.') 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57983392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档