python如何让有20个字符倒三角形居中

Python018

python如何让有20个字符倒三角形居中,第1张

居中的杨辉三角

python实现居中的杨辉三角

晒冷-

原创

关注

7点赞·6152人阅读

先来看一下普通的杨辉三角,代码和输出是长成这样

def YangHui(n):

print([1])

line = [1,1]

for i in range(2,n):

r = []

for j in range(0,len(line) - 1):

r.append(line[j] + line[j + 1])

line = [1] + r + [1]

print(line)

if __name__ == '__main__':

YangHui(5)

登录后复制

输出:

那么如何输出形如

的杨辉三角呢?很自然的就是想到把上面的函数输出居中。

那么居中我们除了自己写循环加空格,python还有没有函数能完成呢?

答案是有的,不过只能将字符串的输出居中

Python center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。

center()方法语法:

str.center(width[, fillchar])

width – 字符串的总宽度。

fillchar – 填充字符。

演示代码:

mess = "Hello Word"

print("|",mess.center(30,'*'),"|")

print("|",mess.center(50,'*'),"|")

print("|",mess.center(50),"|")

登录后复制

详细参考:

center()方法

Python 输出字符串左对齐、右对齐、居中对齐

注意到原始的杨辉三角输出的是列表,为了能使用center()函数将输出居中,我们还需做一个工作:将数字列表转换成字符串

定义这样一个函数

s?=?raw_input('enter?some?word')?你用的是python 2,如果是python 3,你的写法就对了。

具体在python 2里input和raw_input的区别,简单点的说:

input() = eval(raw_input())

所以你才看到相应错误

import random

L = [ random.randint(1, 100) for x in range(10) ]

A = [ x for x in L if not x % 2 ]

B = [ x for x in L if x % 2 ]

print(L)

print("偶数列表:bai{0} 和为:du{1}".format(A,sum(A)))

print("奇数列表:{0} 和为:{1}".format(B,sum(B)))