所以我的教授试图让我们在一个函数中编写一个函数来打印一个不同符号的三角形,如下所示:
&安培;
&安培;
&安培;&安培;
%
%%
%%%
@
@@
@@@
@@@@
我可以编写三角函数并以该格式打印,但是我很难在精神上跳过附加变量符号元素。简而言之,我可以打印出合适的形状,但不能使用不同的符号。这是我到目前为止所做的:
s = "&"
def stars(i):
'''Prints n number of stars'''
print(i*s)
def triangle_of_symbols(s, n):
'''Creates symbol triangle function with variable n.'''
for i in range (n):
stars(i+1)
triangle_of_symbols(s, 1)
triangle_of_symbols(s, 2)
triangle_of_symbols(s, 3)
triangle_of_symbols(s, 4)
我将如何做到这一点?即使被指向正确的方向,现在也会非常有用。
答案 0 :(得分:4)
您的stars
函数当前需要i
,即要打印的星数,然后从全局变量s
中提取要打印的符号。
相反,在s
中参数化stars
,这样您就可以告诉函数在每次调用时打印哪个符号。
def starts(i, s):
print(s * i) # I think that order scans better -- "s, i times". YMMV
然后在triangle_of_symbols
传递s
以及i+1
。
...
for i in range(n):
stars(i+1, s)
虽然真的没有理由把这两个功能分开。
def triangle_of_stars(s, n):
for i in range(n):
print(s * i+1)
答案 1 :(得分:2)
您也可以将符号放在字典中。
shapes = {"stars": "*", "at": "@"}
def generate_triangle(shape_key, lines):
for i in range(lines):
print (shapes[shape_key] * (i+1))
generate_triangle('at', 4)
generate_triangle('stars', 4)