
我有第一個和第二個金字塔的代碼,我只是不知道如何把它放在一起,就像問題是如何問的一樣。下面的第一個代碼用于金字塔 1,第二個代碼用于第二個金字塔。
`
rows = int(input("Enter number of rows: "))
k = 0
for i in range(1, rows 1):
for space in range(1, (rows-i) 1):
print(end=" ")
while k!=(2*i-1):
print("* ", end="")
k = 1
k = 0
print()
`
`
rows = int(input("Enter number of rows: "))
k = 0
count=0
count1=0
for i in range(1, rows 1):
for space in range(1, (rows-i) 1):
print(" ", end="")
count =1
while k!=((2*i)-1):
if count<=rows-1:
print(i k, end=" ")
count =1
else:
count1 =1
print(i k-(2*count1), end=" ")
k = 1
count1 = count = k = 0
print()
`
uj5u.com熱心網友回復:
您只需要在第一個回圈之后運行第二個回圈。你的第二個金字塔的代碼也不正確,所以我改變了它。
rows = int(input("Enter number of rows: "))
k = 0
for i in range(1, rows 1):
for space in range(1, (rows-i) 1):
print(end=" ")
while k!=(2*i-1):
print("* ", end="")
k = 1
k = 0
print()
k = 0
count=0
count1=0
for i in range(1, rows 1):
for space in range(1, (rows-i) 1):
print(" ", end="")
count =1
for k in range(i,0,-1):
print(k, end=' ')
for k in range(2,i 1):
print(k, end=' ')
count = 0
print()
uj5u.com熱心網友回復:
由于構建兩個金字塔的演算法相似,所以最好做一個函式
def pyramid(n_rows, s_type='*'):
max_width = n_rows * 2 - 1
for i in range(0, n_rows):
stars = i * 2 1
side = (max_width - stars) // 2
if s_type == '*':
print(f"{' ' * side}{'* ' * stars}")
else:
side_nums = ' '.join(f'{x 1}' for x in range(0,i 1))
print(f"{' ' * side}{side_nums[1:][::-1]}{side_nums}")
rows = int(input("Enter number of rows: "))
pyramid(rows)
pyramid(rows, s_type='0')
uj5u.com熱心網友回復:
您只需要輸入一次行數。您可能還會發現使用 str.rjust 更容易進行格式化。
rows = int(input('Enter a number from 1 to 9: '))
assert rows > 0 and rows < 10
output = [None] * (rows*2)
stars = '*' * (rows * 2 - 1)
for i in range(rows):
output[i] = stars[:i*2 1].rjust(rows i)
s = ''.join(map(str, range(1, i 2))) ''.join(map(str, range(i, 0, -1)))
output[i rows] = s.rjust(rows i)
print(*output, sep='\n')
輸出:
Enter a number from 1 to 9: 6
*
***
*****
*******
*********
***********
1
121
12321
1234321
123454321
12345654321
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530244.html
標籤:Python
