我试图从第一个函数创建的列表中打印第二个函数中的表。当打印到控制台时,我当前的代码没有正确排列,而且它也是按“从左到右”的顺序打印每一行,而不是按“从上到下”的顺序打印每列。我不知道需要在displayPrimes()函数中更改什么。在
def findPrimes(n):
prime_list = [2]
for number in range(3, n, 2):
if all(number % i != 0 for i in range(2, int(number ** .5) + 1)):
prime_list.append(number)
return prime_list
def displayPrimes():
for row in findPrimes(4027):
for col in findPrimes(4027):
product = row * col
print(product, end = "\t")
break
# main program
findPrimes(4027)
displayPrimes()
我有一个对初学者来说可能不太容易理解的解决方案,但它允许您指定列数。在
在itertools文档中有一个grouper recipe,您可以使用它将iterable拆分为n个大小的组/元组。如果计算出每列(
items_per_column = math.ceil(len(primes)/columns)
)有多少项,可以将这个数字传递给grouper
,然后使用这个zip技巧来转置返回的iterable:zip(*iterable)
。下面是这个成语的演示:解决方案:
^{pr2}$打印超过10列或非常大的数字会弄乱表格。在
相关问题 更多 >
编程相关推荐