我有点问题。我试图让这个程序根据用户指定的高度和符号输出一个直角三角形,但是每当我输入所需的符号和高度时,程序都会输出正确的形状,但是是颠倒的。通过反复试验,我在牢牢掌握循环方面遇到了一些困难,这是迄今为止我能想到的最好的方法。请哪位大哥帮帮忙。提前谢谢你。
triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')
for i in range (len(triangle_char)):
for j in range (triangle_height):
print((triangle_char) * triangle_height )
triangle_height -= 1
当字符为“*”且高度为 5 时,此代码将返回此输出:
*****
****
***
**
*
输入这些值时的预期输出应该是:
*
**
***
****
*****
原文由 Caliman 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先你的循环都关闭了;您正在将值分配给
i
和j
并且不使用它们。其次,第一个循环没有用。如果您输入 3 个字符,它将重复该块 3 次,但变量
triangle_height
在第一次传递时减少到 0,因此在下一次迭代时不会打印任何内容。只需删除此行第三:你说你需要反转三角形,所以,不要减少
triangle_height
,而是使用你在 for 循环中分配给j
的值,而忘记减少变量。由于范围从 0 开始计数,您需要在 print 语句中将其加 1:我还在 input() 方法中用空格替换了
/n
因为它看起来很糟糕。