我想在Python中创建这种模式:使用简单循环创建模式?
*
* *
* * *
* *
*
这是我的计划,到目前为止,我已经想出:
ster = "*"
space = " "
lines = 0
n = 3
x = 1
while lines <= 5:
print space*n, ster*x
n-= 1
x+= 1
lines += 1
我在做什么错?
我想在Python中创建这种模式:使用简单循环创建模式?
*
* *
* * *
* *
*
这是我的计划,到目前为止,我已经想出:
ster = "*"
space = " "
lines = 0
n = 3
x = 1
while lines <= 5:
print space*n, ster*x
n-= 1
x+= 1
lines += 1
我在做什么错?
好的,首先您可以创建一个数字列表,表示每行中星号的数量。
number_of_stars = 5
i_list = list(range(number_of_stars))
# extend the list by its inverse i_list[::-1]
# but exclude the first item
i_list.extend(i_list[::-1][1:])
print(i_list) # prints: [0, 1, 2, 3, 4, 3, 2, 1, 0]
现在你可以走通的列表,并打印*
for i in i_list:
print('* ' * i)
多个但这没有正确对齐。通过添加多个空格在左边一个可以归档解决方案:
for i in i_list:
print(' ' * (number_of_stars - i) + '* ' * i)
注意,在蟒蛇可以通过使用乘号重复的字符串:
print('a'*5) # prints: aaaaa
通知你有
对于您的钻石(包括大部分)的直立三角形部分。然后,你必须
没有抛出了答案,尝试在我刚才指出了分析特定的模式。它可以通过2个循环实现(适用于或同时,取决于您的偏好)。
感谢您的帮助,我为这个问题写了一个功能性代码。它应该使用while循环(s)。 这就是我所做的:
width = int(input("Width: "))
i = 1
while i < width*2:
if i < width:
print " " * (width-i) + "* " * i
else:
print " " * (i-width) + "* " * (2*width-i)
i = i + 1
这给了我一个无限循环。因为'i = i + 1'的缩进需要在循环中。 – MooingRawr
@MooingRawr它呢?我只是跑了代码,似乎工作正常 – HogRider123
@MooingRawr啊是的,这是一个错字。感谢您指出 – HogRider123
嗯,开始:为什么你认为这个代码会完成该模式的创建? – n1c9
@ n1c9这是现在的问题不是吗? – HogRider123
@ n1c9这就是我问的问题,我该如何纠正我的代码? – HogRider123