Skip to main content
 首页 » 编程设计

python之如何使输出更具可读性

2025年05月04日12webabcd

我编写了以下代码,它打印出所需数量的素数。

def prime_number(number1): 
    for desired_num in range(1,int(number1)+1): 
       if desired_num > 1: 
          for i in range(2,desired_num): 
              if (desired_num % i) == 0: 
              break 
          else: 
              print(desired_num) 
number2 = int(raw_input ("Enter any number :- ")) 
print "Prime numbers between 1 and", number2, "are :-" 
prime_number(number2)     

我得到的输出类似于下面的输出,这对于包含很多数字的列表来说变得非常麻烦。

2    
3   
5   
7   

我想要的输出类似于下面的输出。

[2, 3, 5, 7]    

对于如何获得所需的输出,您有什么建议吗?

请您参考如下方法:

为了实现您的目标(格式化输出),您必须对代码进行一些更改,换句话说,使其“更符合 Python 风格”:

import time 
from pprint import pprint, pformat 
from typing import Iterable 
 
 
def prime_number(number1): 
    """ 
    generator 
    :rtype: Iterable[int] 
    :type number1: int 
    """ 
    for desired_num in range(1, int(number1) + 1): 
        if desired_num > 1: 
            for i in range(2, desired_num): 
                if (desired_num % i) == 0: 
                    break 
            else: 
                yield desired_num 
 
 
number2 = int(raw_input("Enter any number :- ")) 
primes = pformat(list(prime_number(number2))) 
print("Prime numbers between 1 and {} are :- {}".format(number2, primes)) 

我在这里使用的是一个管道:pformat(list(prime_number(...))) generator -> list [1, 2, 3] ->文本“[1, 3, ]”。 然后我将文本和 number2 放入一个格式化字符串中,并发送给打印。

如果您是 Python 初学者并且不熟悉 generators 概念,您可以重写 prime_number 函数以使用一个简单的 .append 到一个列表而不是产生它然后返回整个列表。