项目场景:运用python做出杨辉三角打印可能出现的问题
问题描述:
运用C(n,i)方式计算,需要导入包提供计算方式。
输出结果出错可能出现多个1,结果极长的问题。
输出结果正确但是在同一行,不宜观察。
原因分析:
出现第一种情况,可能是在循环中缺少存储当前行的列表。
出现第二种情况,是没有对当前元素采用符号分隔。
解决方案:
运用C(n,i)方式计算,需要导入scipy包提供计算方式。
pip install scipy(下载scipy库)
form scipy.special import comb(python中调用)
参考代码:
from scipy.special import comb l1 = [] # 用于存储杨辉三角的每一行 for i in range(10): # 杨辉三角的行数 row = [] # 存储当前行的组合数 for n in range(i + 1): # 每行的元素数 l3 = comb(i, n) row.append(str(l3)) # 将组合数转换为字符串并追加到当前行 l1.append(row) # 将当前行追加到杨辉三角的列表 print(" ".join(row)) # 打印当前行,元素之间用空格分隔