在 Python 中绘制模式



我正在尝试在Python中绘制以下模式:

#      #
##    ##
###  ###
########

我可以分别得到两个直角三角形,但无法弄清楚如何将它们合二为一。能帮我吗?

我的左三角形代码是:

rows = 4
for i in range(0, rows):
for j in range(0, i+1):
print('#', end='')    
print()

我的直角三角形代码是:

for i in range(0,rows):
for j in range(0, rows-i):
print(' ',end='')
for k in range(0, i+1):
print('#',end='')
print()

我试图以某种方式将它们结合起来,但没有成功。

这里有一种方法可以解决这个问题。"#" * x 打印越来越多的"#",空格 [(2*x(:] 对字符串空间中的八个空格进行切片。

space = '        '
for x in range (1, 5) :
print ('#' * x + space [(2*x):] + '#' * x)

这是一个没有切片的版本。

y = 6
for x in range (1, 5) :
print ('#' * x, end = '')
if y > 0 : print (' ' * y, end = '')
print ('#' * x)
y = y - 2

这是一个模式程序

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

该程序的代码将是:

for i in range(0,7):
for j in range(0,i+1):
print("*",end=" ")
print("r")
for m in range(5,-1,-1):
for n in range(0,m+1):
print("*",end=" ")
print("r")

尝试使用带有分隔符的字符串格式,如下所示:

>>>print("{:<4}{:>4}".format('#','#'))
#      #
>>>print("{:x^7}".format('#'))
xxx#xxx
#f-strings
x = '#'
>>>print(f'{x:>5}')
#

格式分隔符在字符串的左右边或两侧添加填充

我最终做了:

col=8
x=2
y=col-1
for i in range(1, col//2+1):
for j in range(1, col+1):
if(j>=x and j<=y):
print(' ', end='')
else:
print('#', end='')
x=x+1
y=y-1
print()

这里假设no.of 行 l = 4

最小空间从s = 2开始。

基于行尾 = l * 2 打印的哈希值的编号。

l = 4 
space = 2 
end = l * 2 
for i in range(1, l + 1):
print('#'*i, end='')
print(' '*(end - space), end='')
print('#'*i)
space = space + 2

最新更新