我想在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