【问题标题】:I want to convert these outputs to a list我想将这些输出转换为列表
【发布时间】:2020-04-28 11:27:08
【问题描述】:

我是 Python 初学者。

我得到了指定范围内的素数。但是,我无法将其转换为列表。

我也尝试将其转换为字符串并返回列表。

import random

lower = int(input("Enter lower range: "))  
upper = int(input("Enter upper range: "))  

for num in range(lower,upper + 1):  
   if num > 1:  
       for i in range(2, num):  
           if (num % i) == 0:  
               break  
       else:
         print(num)

【问题讨论】:

  • 预期的输入/输出是什么?
  • “转换为列表”是什么意思?如果你想创建一个只包含num 的单元素列表,那么[ num ] 是正确的语法……
  • 你想错了——你不能指望将数据“转换”为列表,因为没有什么可以转换的。您需要在计算结果时将结果收集到一个列表中。
  • 输入,输出是素数的范围。

标签: python numbers primes


【解决方案1】:

从一个空列表开始,每次找到质数时,将其附加到列表中。然后你可以在最后打印列表:

nums = []
for num in range(lower,upper + 1):  
   if num > 1:  
       for i in range(2, num):  
           if (num % i) == 0:  
               break  
       else:
           nums.append(num)

print(nums)

请注意,您只需要向上迭代num 的平方根,除此之外的任何因子都只能有另一个小于它的因子:

from math import sqrt

nums = []
for num in range(lower,upper + 1):  
   if num > 1:  
       for i in range(2, int(sqrt(num))):  
           if (num % i) == 0:  
               break  
       else:
           nums.append(num)

print(nums)

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    相关资源
    最近更新 更多