Skip to main content
 首页 » 编程设计

python之在循环中的不同行上打印值时,如何避免在最后一次迭代后打印换行符

2025年05月04日18bonelee

我正在尝试遍历并打印每个元素,这些元素是一系列数字中的素数。我想在新行中打印它们中的每一个,但在打印的最后一个元素的末尾不需要换行符。

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='')