[英]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
。 但它总是正确的,你可以省略它。 另外这里是我的建议如何使用和更改x
和z
:
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.