我的教授给了我这段代码,并打印了一个* s的三角形:
def printTriangle(size):
for i in range(0,size):
for j in range(0,i+1):
print "*",
print
这是我尝试编码三角形的倒数的尝试失败:
def printInvertedTriangle(size):
for i in range(size,0):
for j in range(size,i-1):
print "*",
print
我尝试了很多不同的方法,但这就是我认为它应该是的方式,并且它只在程序结束前给我空白。
我的理解是这就是他的作品:
for i in range(start,finish):
for j in range(start,step):
print "*",
print
任何人都可以向我解释为什么我的教授给我的第一块作品,以及为什么我的打印空白区?我想到我理解他的循环;那我在做什么错了?它应该是什么样的?我想要一些基于他的for循环的东西。他违反了我在Python教程中所阅读的内容,因为他只有(开始,步骤),而教程说它是(开始,停止,步骤)。
我开始使用JS进行编程,并认为一些简单的Python循环可以在公园散步......
非常感谢任何帮助! #noob
答案 0 :(得分:0)
您的脚本没有输出任何内容的原因是您的范围无效。
正如我们在翻译中看到的那样:
>>> range(10,0)
[]
输出一个空列表。
实现目标的一种方法是使用reversed()内置来反转列表。
for i in reversed(range(0,size)):
for j in range(0,i+1):
为了将来的帮助,请尝试更多地使用解释器来检查事物的输出。
你可以在交互模式下打开任何python模块,它运行程序,然后让你使用解释器。
python -i script.py
答案 1 :(得分:0)
def printInvertedTriangle(size):
**for i in range(size,0):**
for j in range(size,i-1):
print "*",
print
我认为显示空白区域的错误是第二行的结果。由于此索引计算了遍历行的次数,因此需要通过x(大小)范围内的x迭代次数进行计算。
在第二个for循环中,当行从1增加到2到3 ......等时使用变量i和max(size)来构建反向三角形。
试试这个:
def printReverseTriangle(size):
for i in range(0,size):
for j in range(i,size):
print "*",
print
答案 2 :(得分:0)
这是我必须为周末作业制作的一个程序。它也提供了相当不错的反向三角形。
def reverse_triangle(n):
r=n/2+1
for i in range(r-1,0,-1):
print" "*(r-i)," *"*i
def main():
n=input('Enter the size=')
reverse_triangle(n)
main()
注意:在这个位" *"*i
中,我将空格放在星号之前,因为如果没有添加空格,我的PC版本的Python 2.7不能对称地打印模式。您可以尝试使用空间或没有它,并检查它是否适合您。