如何在 python 中打印星形 hypen 图案
how to print star hypen pattern in python
如何打印这样的图案:
(需要打印n-1行)
输入=3
----@
--@-@-@
输入=6
----------@
--------@-@-@
------@---@---@
----@-----@-----@
--@-------@-------@
我的代码:
row = int(input())
for i in range(1, row):
for j in range(1,row-i+1):
print("-", end="")
for j in range(1, 2*i):
if j==1 or j==2*i-1:
print("@", end="")
else:
print("-", end="")
print()
我的输出:
输入=5
----@
---@-@
--@---@
-@-----@
请解释一下怎么做?
您的代码中缺少一些需要改进的地方:
- 无需循环即可一次又一次地打印相同的字符:在 python 上,您可以使用该产品将字符重复 x 次。例如:
"-" * 3 == "---"
- 你计算中间连字符的方法很好,但你需要计算两次并在中间添加一个
"@"
。
- 您可以先逐部分构建字符串,然后打印整行,避免在循环结束时打印空行。
- 就个人而言,由于第一行将有一个
"@"
而不是三个,所以我更喜欢计算它并单独打印它。
通过这些改进,您的问题的解决方案可能是:
row = int(input())
print("-" * (row - 1) * 2 + "@")
for i in range(row - 2, 0, -1):
left_hyphens = "-" * i * 2
mid_hyphens = "-" * (1 + 2 * (row - 2 - i))
print(left_hyphens + "@" + mid_hyphens + "@" + mid_hyphens + "@")
row = int(input())
for i in range(1, row):
for j in range(1,2*(row-i)+1):
print("-", end="")
for j in range(1, 4*i):
if j==1 or j==2*i-1 or j==4*i-3:
print("@", end="")
elif j<=4*i-3:
print("-", end="")
print()
如何打印这样的图案:
(需要打印n-1行)
输入=3
----@
--@-@-@
输入=6
----------@
--------@-@-@
------@---@---@
----@-----@-----@
--@-------@-------@
我的代码:
row = int(input())
for i in range(1, row):
for j in range(1,row-i+1):
print("-", end="")
for j in range(1, 2*i):
if j==1 or j==2*i-1:
print("@", end="")
else:
print("-", end="")
print()
我的输出: 输入=5
----@
---@-@
--@---@
-@-----@
请解释一下怎么做?
您的代码中缺少一些需要改进的地方:
- 无需循环即可一次又一次地打印相同的字符:在 python 上,您可以使用该产品将字符重复 x 次。例如:
"-" * 3 == "---"
- 你计算中间连字符的方法很好,但你需要计算两次并在中间添加一个
"@"
。 - 您可以先逐部分构建字符串,然后打印整行,避免在循环结束时打印空行。
- 就个人而言,由于第一行将有一个
"@"
而不是三个,所以我更喜欢计算它并单独打印它。
通过这些改进,您的问题的解决方案可能是:
row = int(input())
print("-" * (row - 1) * 2 + "@")
for i in range(row - 2, 0, -1):
left_hyphens = "-" * i * 2
mid_hyphens = "-" * (1 + 2 * (row - 2 - i))
print(left_hyphens + "@" + mid_hyphens + "@" + mid_hyphens + "@")
row = int(input())
for i in range(1, row):
for j in range(1,2*(row-i)+1):
print("-", end="")
for j in range(1, 4*i):
if j==1 or j==2*i-1 or j==4*i-3:
print("@", end="")
elif j<=4*i-3:
print("-", end="")
print()