首先,我定义两个函数。一个使底数b为奇数(3,5,7 ...)的三角形向上并远离左侧放置一个单位的三角形。然后再做一个与之相同但底部向下的三角形。分别称它们为triup和trido。我们得到:
def triup(a,b):
c=b
a=a
for i in range(1,b+1):
print(a*" "+c*'*')
c-=2
a+=1
if c==-1:
break
def trido(a,b):
c=1
a=a+round((b-1)/2)
for j in range(1,b+1):
print(a*" "+c*"*")
c+=2
a-=1
if c==b+2:
break
现在,我想通过结合两个功能来制作菱形。所以首先我尝试:
def rhomb(a,b):
print(trido(a,b))
print(triup(a,b))
两次打印“无”。另外,我还必须进行更改,以免我两次都不做底数,但是不能更改三角形的定义。我该如何解决呢?任何提示将是有用的
如果您以后要使用字符串,则需要返回值,将您在代码中打印的每个字符串连接起来,并添加换行符,通过返回实际值,您还将删除在输出中看到的“无”,因为您实际上并未返回任何值不是python默认的None。
def triup(a, b):
c = b
out = ""
for i in range(1, b + 1):
out += a * " " + c * '*' + "\n"
c -= 2
a += 1
if c == -1:
return out
return out
def trido(a, b):
c = 1
a += round((b - 1) / 2)
out = ""
for j in range(1, b + 1):
out += a * " " + c * "*" + "\n"
c += 2
a -= 1
if c == b + 2:
return out
return out
您可以存储两个输出,并可以对它们进行任何操作:
In [10]: a,b = triup(5,5),trido(5,5)
In [11]: print(a)
*****
***
*
In [12]: print(b)
*
***
*****
In [13]: print(b+a)
*
***
*****
*****
***
*
In [14]: print(a + b)
*****
***
*
*
***
*****
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句