Saya ingin membuat satu for loop menggunakan 2 variabel, bukan for loop dan variabel eksternal.

Apakah ada cara untuk melakukan sesuatu membongkar tupel dengan jangkauan?

Inilah yang saya miliki:

space = height
for h in range(height):
    # code using both h & space

Berikut adalah kode yang saya coba tingkatkan:

# Get positive integer between 1 - 8
while True:
    height = int(input("Height: "))
    if height > 0 and height < 9:
        break

space = height  # Control space count

# Build the pyramid
for h in range(height):
    print(" " * (space - 1),"#" * (h + 1), end="")
    print(" ", end="")
    print( "#" * (h + 1), " " * (space - 1), end="")
    space -= 1

    print()  # Get prompt on \n
1
Wolftales 4 Mei 2020, 19:51

2 jawaban

Jawaban Terbaik

Anda dapat menggunakan objek range kedua (dari height ke 0) lalu zip untuk mengulangi kedua rentang sekaligus:

# Get positive integer between 1 - 8
while True:
    height = int(input("Height: "))
    if height > 0 and height < 9:
        break

# Build the pyramid
for h, space in zip(range(height), range(height, 0, -1)):
    print(" " * (space - 1),"#" * (h + 1), end="")
    print(" ", end="")
    print( "#" * (h + 1), " " * (space - 1), end="")

    print()  # Get prompt on \n
4
DeepSpace 4 Mei 2020, 16:57

Tidak perlu menggunakan height dan space. Anda dapat menggunakan h untuk menambah tinggi dan mengurangi ruang.

for h in range(height):
    print(" " * (height - h - 1),"#" * (h + 1), end="")
    print(" ", end="")
    print( "#" * (h + 1), " " * (height - h - 1), end="")
    print()  # Get prompt on \n
0
MisterMiyagi 4 Mei 2020, 17:00