我正在尝试遍历并打印每个元素,这些元素是一系列数字中的素数。我想在新行中打印它们中的每一个,但在打印的最后一个元素的末尾不需要换行符。
def prime_in_range():
lower=int(input())
upper=int(input())
if 1 <= lower <= 10000 and 1 <= upper <= 10000:
for num in range(lower, upper + 1):
# prime numbers are greater than 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num) #changing this to print(num,end='') prints everything in same line
prime_in_range()
输入为 1 和 10,我需要输出为:
2
3
5
7
但默认情况下我在最后得到一个换行符
2
3
5
7
并使用 print(num,end='') 获取以下内容:
2357
请您参考如下方法:
一个解决方法是让你的函数产生输出值,并让调用者解包并打印值,使用换行符作为分隔符,sep='\n',以及一个空字符串作为以 end='' 结尾的行改为:
def prime_in_range(lower, upper):
if 1 <= lower <= 10000 and 1 <= upper <= 10000:
for num in range(lower, upper + 1):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
yield num
print(*prime_in_range(2, 7), sep='\n', end='')
