首页 > 解决方案 > 达到最大值后仅打印一次

问题描述

我只需要执行print一次最后的语句,在max_rows到达之后。

假设您需要用 30 个元素填充列表,但只想打印前 20 次,然后只想继续附加到列表而不打印任何内容,除了“截断...”(一次)。

这是实现此目的的丑陋方式。还有什么更优雅的方法?

max_rows = 20
max_rows_exceeded = False
rows = 0
i = 0
my_list = list()
while i < 30:
    i += 1
    if rows < max_rows:
        print("rows < max_rows  -   %s" % rows)
        rows += 1
    else:
        max_rows_exceeded = True
    my_list.append(i)
if max_rows_exceeded:
    print("Truncating due to max displayable row number exceeded: %s" % max_rows)

标签: pythonpython-3.x

解决方案


没有理由检查循环内的行是否超出。您可以在循环后检查这个“数学” :

max_rows = 20
my_list = []

upper_limit = 30
for rows in range(upper_limit):
    if rows < max_rows:
        print("rows < max_rows  -   %s" % rows)
    my_list.append(rows)

if max_rows < upper_limit:
    print("Truncating due to max displayable row number exceeded: %s" % max_rows)

推荐阅读