-2

我的打印机为我的长列表提供了这段代码,因此 Python 在提示用户按 Enter 之前只会在列表中显示 x(在本例中为 9)项。我已经让它适用于我的一些列表,但对于其余的,它会以不均匀的数量打印,有时根本不会打印任何项目。她从来没有解释过,她只是把它给了我们,所以我只需要澄清它的作用,这样我就可以有效地将它应用到其他列表中。到目前为止,我所做的只是将 the_list 更改为我正在使用的那个,然后将 print (the_list) 或我需要的任何内容打印出来。

for ind in range (0,len(the_list)):
     if ind%10==9:
         input("Press ENTER to continue")
     print("information")

此外,即使这可能不是最有效的方式,这是她给我的方式,所以我认为这是她希望我们使用的方式。为了将来参考,我不介意你是否给我一个完全不同的代码,但我需要知道如何将这个代码应用于这个特定的项目。提前致谢。

4

1 回答 1

0

这可能是预期的。它不是打印 9,而是打印 9个项目。每个项目可以是一个空字符串(不会打印任何内容),可以是几个单词,也可以是整个屏幕的文本。

例子:

list1 = [chr(a+65) for a in range(26)]
list2 = [chr(a+65)*300 for a in range(26)]

In [287]: list1[0]
'a'

In [288]: list2[0]
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

第一个只是创建一个从 A 到 Z 的字符数组。第二个是为每个字母创建一个长列表(300 个字符)。由于您的控制台可能有 80 个字符,因此仅打印其中的一行将环绕您的屏幕 3 次。因此打印 list2 将花费 4 倍于 list1 的屏幕行数。

您的代码没有任何问题,但更好的方法是将您的表示打印成一个字符串,按行拆分,然后一次显示一些屏幕行,而不是项目。不完全一样,但是 IPython 的 %page 魔法做了一些非常相似的事情;它打印您的对象的表示,但允许您翻阅它。

于 2013-10-04T16:21:17.463 回答