python - 如何停止python打印多行?
问题描述
我有一个小功能来检查一个数字是否是素数。print
除了一个小细节外,它工作正常 - 它在程序结束时打印出不止一行。
n = int(input("Enter a number to find if it is prime: "))
def is_prime():
for i in range(2, n):
if n % i == 0:
print("Not prime")
break
else:
print("The number {} is prime".format(n))
is_prime()
如果我在程序运行时输入数字 2,它会打印:
the number 2 is prime
the number 2 is prime
the number 2 is prime
它只需要打印一次,这是为什么呢?
解决方案
你else
的位置不对。你有它在 上if
,但你实际上想要它在 上for
。
它可能不太为人所知,但您可以有一个else
onfor
循环,如果在循环期间没有执行它,它将执行break
。
n = int(input("Enter a number to find if it is prime: "))
def is_prime():
for i in range(2, n):
if n % i == 0:
print("Not prime")
break
else:
print("The number {} is prime".format(n))
is_prime()
推荐阅读
- python - Pandas:当其他列的值发生变化时,如何从列中保留其他新数据框中的重复行?
- mp4 - 什么是 mp4 文件中的 MEBX 框,出于某种原因,iPhone 有时会创建这样的原子
- c# - 我可以从 C# .Net 驱动程序中多个文档中存在的数组中提取多个元素吗
- python - 根据原始列表中的数字重复的列表
- flutter - 如何根据 Flutter 中的项目更改底部表的高度?
- java - Mapstruct - 通用映射器
- python - 哈希值是如何计算的?为什么每次运行脚本时对象的哈希值都会发生变化?
- python - 从源代码构建 Papagayo(Lip Sync Tool)的问题
- mysql - EntityFramework.dll 中的 ASP.NET MVC 'System.NullReferenceException'
- linux - org.openqa.selenium.SessionNotCreatedException:会话未在 centos 终端断开连接时创建