我正在尝试创建一个程序,您可以在其中输入一个数字,程序会创建一个" christmastree"安排+。例如,如果我输入数字5,程序应该打印:
+
+++
+++++
+++++++
+++++++++
到目前为止我所拥有的是:
def holidaybush(n):
z=n-1
x=1
for i in range(0,n):
for i in range(0,z):
print('',end='')
for i in range(0,x):
print('+',end='')
for i in range(0,z):
print('',end='')
x=x*2
x=x-1
z=z-1
print()
holidaybush(5)
它不像我期望的那样工作,即使我经历了逻辑,它似乎在我脑海中起作用。有帮助吗?我今天刚刚学习了循环,所以我可能不知道它们的一切。
答案 0 :(得分:3)
好的,你有两个问题。首先,当你去缩进时,你写道:
print('',end='')
在python(和其他语言)中,''
是一个空字符串。您应该使用' '
。
其次,你的x
递增逻辑似乎是错误的。只需添加2
每个循环工作正常,制作您的程序:
def holidaybush(n):
z=n-1
x=1
for i in range(0,n):
for i in range(0,z):
print(' ',end='')
for i in range(0,x):
print('+',end='')
for i in range(0,z):
print(' ',end='')
x=x+2
z=z-1
print()
holidaybush(5)
您的代码可以通过以下方式变得更加紧凑:
x=x+2
替换为x+=2
range
自动从零开始,因此range(0,z)
可以替换为range(z)
for
' ' * z
循环
将这些结果应用于:
def holidaybush(n):
z = n - 1
x = 1
for i in range(n):
print(' ' * z + '+' * x + ' ' * z)
x+=2
z-=1
holidaybush(5)
但你可能想要坚持使用详细版本。
答案 1 :(得分:2)
怎么样:
def holidaybush(n):
for i in range(n):
print ' ' * (n - (i + 1)),'+' * (2*i+1)
holidaybush(5)
答案 2 :(得分:2)
您可以使用string.center()
,仅用于添加其他解决方案,这使代码更紧凑:
def holidaybush(n):
for i in range(n):
print(("+" * (i * 2 + 1)).center(n * 2 - 1))
holidaybush(5)
答案 3 :(得分:1)
这是绘制圣诞树的最简单的代码:
for i in range(1,20,2):
print(('*'*i).center(20))
for leg in range(3):
print(('||').center(20))
print(('\====/').center(20))
答案 4 :(得分:0)
如果您更改了' x + = 2'到' x + = 1'你得到了正确的形状,但没有那么多' +',但它不会变宽 MOD:
def holidaybush(n):
z = n
x =1
for i in range(n):
print(' ' * z + '+' * x + ' ' * z)
x+=1
z-=1
holidaybush(5)
答案 5 :(得分:0)
我们也可以没有任何数字,只是为了好玩
n = int(input("how big?\t")) for i in range(n): for j in range(n-i): print(' ', end='') print('\b', end='') #cheating for k in range(i+n-j): print('*', end='') print('')
答案 6 :(得分:0)
number = -1
Range = int(input("how many layers do you want the tree?"))
for x in range(0,Range):
number = number + 2
print(" " * (Range - x), "+" * number)
这对我有用。
答案 7 :(得分:0)
`
a=7
n=7
for i in range(7):
print(" "*a,end="")
print("*"*(2*i+1))
a-=1
for b in range (n//2):
print(" *****")
` 尝试使用此简单代码使用for循环
打印树答案 8 :(得分:0)
while True:
size = int(input("Enter the number of rows for the tree:"))
last_row = (2 * size) - 1
for i in range(1, size + 1):
print(((" ") * (size - i)) + (("*") * ((2 * i) - 1)))
我想出了这个树程序的代码。
答案 9 :(得分:-2)
height = eval(input("Enter height of tree: "))
for row in range(height):
for count in range(height - row):
print(end=" ")
for count in range(2*row + 1):
print(end="*")
print()