我正在尝试在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