繁体   English   中英

无法获得所需的星形图案。 我究竟做错了什么?

[英]Cant get the desired star pattern. What am i doing wrong?

所需的 output:

       *
      ***
     *****
    *******
   *********
  ***********
 *************

实际 output:

       *      ***
     *****
    *******
   *********
  ***********
 *************
rows = int(input("ENTER NUMBER OF ROWS: "))
x = 0
count = 0
z =0
for i in range (rows, 0 , -1):
    print(" "*i , end ="")
    x += 1
    print("*" * x, end ="")
    count += 1
    if count>1:
        z += 1
        print("*" * z)

它不会在第一行之后打印换行符,因为您的计数正好是一个。 你可以放一个 else 子句来解决这个问题。

rows = int(input("ENTER NUMBER OF ROWS: "))
x = 0
count = 0
z =0
for i in range (rows, 0 , -1):
    print(" "*i , end ="")
    x += 1
    print("*" * x, end ="")
    count += 1
    if count>1:
        z += 1
        print("*" * z)
    else:
        print("")

第一次迭代后,您没有打印新行。 代码应如下所示。

rows = int(7)
x = 0
count = 0
z = 0
for i in range(rows, 0, -1):
    print(" " * i, end="")
    x += 1
    print("*" * x, end="")
    count += 1
    if count > 1:
        z += 1
        print("*" * z)
    else:
        print()

if count>1: for 1st row is false,所以你应该检查count>0 但它总是正确的,你可以省略它。 另外这里是我的建议如何使用和更改xz

rows = int(input("ENTER NUMBER OF ROWS: "))
x = 1
z = 0
for i in range (rows, 0 , -1):
    print(" "*i, end ="")
    print("*"*x, end ="")
    print("*"*z)
    x += 1
    z += 1
This should work

rows = int(input("ENTER NUMBER OF ROWS: "))
x = 0
count = 0
z =0
for i in range (rows, 0 , -1):
    print(" "*i , end ="")
    x += 1
    print("*" * x, end ="")
    count += 1
    if count>1:
        z += 1
        print("*" * z)
    else:
        print()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM