如何在python中使用'#'打印钻石

时间:2019-07-18 18:06:10

标签: python

我正在尝试在菱形的第一行和最后一行打印一个菱形,并在每行之间打印两个“#”符号,并在中间的一行中留一个空格。

规定:应该是一个函数diamond(n),该函数可打印带有空格和n行和n个字符宽的'#'符号的菱形。

我已经尝试过了:

for i in range(n-1):
  print((n-i) * ' ' + (2*i+1) * '#')
for k in range(n-1, -1, -1):
  print((n-i) * ' ' + (2*i+1) * '#')

但是我每行得到太多的'#'符号。

diamond(5)的预期结果:

  #
 # #
#   #
 # #
  #

2 个答案:

答案 0 :(得分:0)

您必须计算两个八面体之间所需的空间数量。 Y我们的第一行只有一个octo,并且之间没有空格(duh!)。那你需要

line internal spaces
 2    1
 3    3
 4    5
 5    7
...

由于您已经能够弄清楚以前的线性关系,我怀疑您可以得到这个线性关系。

space_ct =    # your code here
print((n-i) * ' ' + '#' + space_ct * ' ' + '#')

你能从这里结束吗?

答案 1 :(得分:0)

尝试一下:

from sshtunnel import SSHTunnelForwarder
from sqlalchemy.orm import Session
from sqlalchemy import create_engine

server = SSHTunnelForwarder(
    (remote_ip, 22),
    ssh_username="sshuser",
    ssh_password="sshpwd",
    remote_bind_address=('127.0.0.1', 3306),
    local_bind_address=('127.0.0.1','3307')
)
server.start()

engine = create_engine('mysql://dbuser:dbpwd@127.0.0.1:3307/dbname')
session = Session(engine)

rs = session.execute('select count(distinct col1) from table1')
for r in rs:
    print(r[0])

session.close()
engine.dispose()
print('it gets here')
server.stop()
print('Finished!')

输出

n=2
j=n-1
print(' '*(n)+'#')
for i in range(1, 2*n):
    if i>n:
        print(' '*(i-n)+'#'+' '*(2*j-1)+'#')
        j-=1
    else:
        print(' '*(n-i)+'#'+' '*(2*i-1)+'#')
if n>1:
    print(' '*n+'#')