Python 帮助,打印列表中的值

标签 python list variables printing primes

我有一个程序可以获取用户编号,找到该点之前的所有质数并将它们存储在列表中,现在我需要从该列表中查看它们中的两个是否加在一起添加到用户输入中,这个是我似乎无法正确处理的地方。我将把最后一点放在我需要帮助的地方。

    num = int(raw_input('enter a number: '))
    b = [2, 3, 5, 7, 11, #... etc up to the prime before the users number]
    for a in b:
        for c in b:
            if c + a = num
            print num, '=', a, '+', c
            break

然而,当我有一个用户输入说 8 时,它会打印出:

8=3+5

8=5+3

我怎样才能让它只打印一个值?

最佳答案

您只是跳出内部循环,而不是外部循环。

num = int(raw_input('enter a number: '))
b = [2, 3, 5, 7, 11]
for a in b:
    for c in b:
        if c + a == num:
            print num, '=', a, '+', c
            break
    else:
        continue
    break

输出:

$ python ~/tmp/soprim.py
enter a number: 8
8 = 3 + 5

python 中的 For-else 有点违反直觉; else 仅在循环完成且没有中断时执行。所以在这种情况下,如果它从未遇到第一个中断,则 else 子句运行并继续执行下一个外部循环。但是如果你打了第一个 break,else 不会运行,所以你打了第二个 break,然后你就退出了两个循环。

关于Python 帮助,打印列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9054851/

相关文章:

java - 有没有办法声明一个选项有限的变量?

Python 搜索并打印值

python - python 3.8 中异步内部的多处理失败(无法腌制本地对象)

Python 如何检测我是否迭代了列表中的新项目?

c# - 比较两个列表中的项目并返回不匹配的项目

python - PyQT 使用循环向选项卡添加数据/信息

c# - 一旦方法完成,我的变量就会不断切换回来

python - 填充绘制线下的区域

python - jython lambda 函数

php - PHP中DEFINE变量的作用域