首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中使用while循环时如何做倒金字塔

在python中使用while循环时如何做倒金字塔
EN

Stack Overflow用户
提问于 2022-03-17 05:48:47
回答 1查看 237关注 0票数 0

我需要帮助来做这件事。我们需要创建一个输出必须与此代码相反的代码。

样本代码(我们的基础):

代码语言:javascript
复制
line = 1
while line <= 5:
    number = 1
    while number <= line:
        print(number, end = '')
        number = number + 1
    line = line + 1
    print('')

输出:

代码语言:javascript
复制
1
12
123
1234
12345

它必须是:

代码语言:javascript
复制
12345
1234
123
12
1

你能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-17 06:39:36

写金字塔有几种方法。

考虑到使用while的要求

代码语言:javascript
复制
from functools import reduce


def inverse_pyramid(lines: int) -> None:
    while lines:
        xs = reduce(lambda x, y: str(x) + str(y), range(1, lines + 1))
        print(xs)
        lines -= 1

如何不使用循环:

代码语言:javascript
复制
from functools import reduce


def recursive_inverse_pyramid(lines: int) -> None:
    if lines:
        xs = reduce(lambda x, y: str(x) + str(y), range(1, lines + 1))
        print(xs)
        recursive_inverse_pyramid(lines - 1)

如何使用map而不是还原:

代码语言:javascript
复制
def pyramid_mapper(lines: int) -> None:
    if lines:
        xs = map(str, range(1, lines + 1))
        print(''.join(xs))
        pyramid_mapper(lines - 1)

如何理解:

代码语言:javascript
复制
def pyramid_comprehension(lines: int) -> None:
    while lines:
        xs = (str(x) for x in range(1, lines + 1))
        print(''.join(xs))
        lines -= 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71507598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档