python菜鸟教程

您所在的位置:网站首页 python输出等腰数字三角形 python菜鸟教程

python菜鸟教程

2024-06-08 04:08| 来源: 网络整理| 查看: 265

61 打印杨辉三角形 # 初始化杨辉三角形 # 创建一个10*10的二维列表,并将所有的元素初始化为0 triangle = [] for i in range(10): triangle.append([]) for j in range(10): triangle[i].append(0) # 计算杨辉三角形 # 根据观察,我们知道杨辉三角形左右两边的元素均为1 for i in range(10): triangle[i][0] = 1 triangle[i][i] = 1 # 第i行j列的值 = 第(i-1)行(j-1)列的值 + 第(i-1)行(j)列的值 for i in range(2, 10): for j in range(1, i): triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j] # 输出直角杨辉三角 for i in range(10): #10行 for j in range(i + 1): #列 print(str(int(triangle[i][j])) + ' ', end='') #输出为字符串+空格 print() n = 10 #定义输出的行数 # 输出正三角的杨辉三角 for i in range(n): for j in range(n - i): print(' ', end='') for j in range(i + 1): print(str(int(triangle[i][j])) + ' ', end='') print() # 输出杨辉三角形 for i in range(10): # 因为是三角形,所以i越小,前边需要填充的TAB越多 for k in range((10 - i) // 2): print('\t', end='') for j in range(i + 1): # 要形成“隔行错开”的效果,所以我们在偶数行加4个空格 if i % 2 == 1: print(" ", end='') # 为何要使用TAB而非空格,大家可以将下面的end='\t'改成对应的空格数即可知晓 print(triangle[i][j], end='\t') print() 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 import numpy as np ''' python输出杨辉三角形,直角三角形和正三角形 ''' n = int(input('输入杨辉三角的层数:')) arr = np.ones(n * n).reshape(n, n) # 生成n行n列的数组,初始值为1 for i in range(2, n): for j in range(1, i): arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j] # 输出直角杨辉三角 for i in range(n): for j in range(i + 1): print(str(int(arr[i][j])) + ' ', end='') print() # 输出正三角的杨辉三角 for i in range(n): for j in range(n - i): print(' ', end='') for j in range(i + 1): print(str(int(arr[i][j])) + ' ', end='') print() 输入杨辉三角的层数:10 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 #!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == '__main__': a = [] for i in range(10): a.append([]) for j in range(10): a[i].append(0) for i in range(10): a[i][0] = 1 a[i][i] = 1 for i in range(2, 10): for j in range(1, i): a[i][j] = a[i - 1][j - 1] + a[i - 1][j] from sys import stdout # 标准输出 for i in range(10): for j in range(i + 1): stdout.write(str(a[i][j])) #挨个输出矩阵 stdout.write(' ') # 输出的数字直接空一格 print() 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 矩阵的小练习 新建矩阵

方法一:

#创建一个n*n的矩阵 a = [] # 新建一个空矩阵 n = 3 # 矩阵的行数 for i in range(n): #循环从0到n,所以每行每列均为4个数字 a.append([]) #i循环n次代表矩阵每行 for j in range(n): a[i].append(0) #j循环代表接着每行的第1个数字后面写n列 print(a)

方法二:

import numpy as np n = 3 a = np.zeros(n * n).reshape(n, n) # 生成n行n列的数组,初始值为0 b = np.ones(n * n).reshape(n, n) # 生成n行n列的数组,初始值为1 print(a) print("*"*20) print(b)

[[0. 0. 0.]

 [0. 0. 0.]

 [0. 0. 0.]]

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

[[1. 1. 1.]

 [1. 1. 1.]

 [1. 1. 1.]]

# 输出直角杨辉三角 for i in range(10): #10行 for j in range(i + 1): #列 print(str(int(triangle[i][j])) + ' ', end='') #输出为字符串+空格 print()

[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0, 0, 0, 0, 0], [1, 3, 3, 1, 0, 0, 0, 0, 0, 0], [1, 4, 6, 4, 1, 0, 0, 0, 0, 0], [1, 5, 10, 10, 5, 1, 0, 0, 0, 0], [1, 6, 15, 20, 15, 6, 1, 0, 0, 0], [1, 7, 21, 35, 35, 21, 7, 1, 0, 0], [1, 8, 28, 56, 70, 56, 28, 8, 1, 0], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]]

因为杨辉三角形是在一个10*10的矩阵里赋值的,第一行a[0](1列有效),第二行a[1](1,2列有效),第3行a[2](1,2,3列有效),可以看出j=i+1有效

通过循环输出就可以把有效数字输出,再改为字符串+空格的形式输出。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3