44 3*3的矩阵对应位置相加-for循环
两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
程序分析:创建一个新的 3 行 3 列的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
X = [[12, 7, 3],
[4, 5, 6],
[7, 8, 9]]
print("矩阵的行",len(X)) # 这么写是因为矩阵的每一个列表为一行,矩阵由n行组成
print("矩阵的列",len(X[0])) # 这么写是因为X的第一个元素为第一列,计算X[0]的长度即为列的长度
Y = [[5, 8, 1],
[6, 7, 3],
[4, 5, 9]]
# 创建一个结果的空矩阵
result = [[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
# 迭代输出行
for i in range(len(X)):
# 迭代输出列
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]
for r in result: # 用r或者i都可以
print(r)
矩阵的行 3
矩阵的列 3
[17, 15, 4]
[10, 12, 9]
[11, 13, 18]
45统计 1 到 100 之和
sum = 0
for i in range(1,101): #循环相加是数字是i
sum += i
print("1-100相加的和为:",sum)
1-100相加的和为: 5050
46求输入数字的平方,如果平方运算后小于 50 则退出
# 先定义while判断条件
TRUE = 1
FALSE = 0
again = 1
print ('如果输入的数字小于 50,程序将停止运行。')
while again: #如果正确了就继续,不正确了就跳出
num = int(input("请输入一个数字>"))
a = num * num
print("运算结果为%d" % a)
if a >= 50:
again = TRUE
else:
again = FALSE
如果输入的数字小于 50,程序将停止运行。
请输入一个数字>12
运算结果为144
请输入一个数字>11
运算结果为121
请输入一个数字>6
运算结果为36
47 两个变量值互换
def exchange(a,b):
a,b = b,a
return(a,b)
x = 10
y = 20
print("x = %d,y = %d" % (x,y))
x,y = exchange(x,y)
print("x = %d,y = %d" % (x,y))
x = 10,y = 20
x = 20,y = 10
a = int(input("请输入一个整数a>"))
b = int(input("请输入一个整数b>"))
a,b = b,a
print("a = %d,b= %d" % (a,b))
请输入一个整数a>12
请输入一个整数b>21
a = 21,b= 12
48 数字比较
a = int(input("请输入一个整数a>"))
b = int(input("请输入一个整数b>"))
if a > b:
print("%d > %d" % (a,b))
if a < b:
print("%d < %d" % (a,b))
else:
print("%d = %d" % (a,b))
请输入一个整数a>12
请输入一个整数b>21
12 < 21
49 使用lambda来创建匿名函数-求最大值和最小值
lambda只能写一行,返回值只能是一个数
MAXIMUM = lambda x, y: (x > y) * x + (x < y) * y
MINIMUM = lambda x, y: (x > y) * y + (x < y) * x
if __name__ == '__main__':
a = 10
b = 20
print('The largar one is %d' % MAXIMUM(a, b))
print('The lower one is %d' % MINIMUM(a, b))
The largar one is 20
The lower one is 10
50输出一个随机数——使用 random 模块
import random
#生成10到20之间的随机数
#uniform返回一个随机浮点数,在10-20之间
print(random.uniform(10,20))
#random() 方法返回随机生成的一个实数,它在[0,1)范围内。
print(random.random())
#randrange()从 range(start, stop, step) 返回一个随机选择的元素。默认step为1
print(random.randrange(1,100,2))
#randint(a, b) 随机返回一个整数
print(random.randint(1,10))
11.363569507612274
0.24154087492184817
17
2
方法 | 描述 |
初始化随机数生成器 | |
getstate() | 返回捕获生成器当前内部状态的对象。 |
setstate() | state 应该是从之前调用 getstate() 获得的,并且 setstate() 将生成器的内部状态恢复到 getstate() 被调用时的状态。 |
getrandbits(k) | 返回具有 k 个随机比特位的非负 Python 整数。 此方法随 MersenneTwister 生成器一起提供,其他一些生成器也可能将其作为 API 的可选部分提供。 在可能的情况下,getrandbits() 会启用 randrange() 来处理任意大的区间。 |
从 range(start, stop, step) 返回一个随机选择的元素。 | |
返回随机整数 N 满足 a <= N <= b。 | |
从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError。 | |
choices(population, weights=None, *, cum_weights=None, k=1) | 从 population 中选择替换,返回大小为 k 的元素列表。 如果 population 为空,则引发 IndexError。 |
将序列 x 随机打乱位置。 | |
sample(population, k, *, counts=None) | 返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。 |
返回 [0.0, 1.0) 范围内的下一个随机浮点数。 | |
返回一个随机浮点数 N ,当 a <= b 时 a <= N <= b ,当 b < a 时 b <= N <= a 。 | |
triangular(low, high, mode) | 返回一个随机浮点数 N ,使得 low <= N <= high 并在这些边界之间使用指定的 mode 。 low 和 high 边界默认为零和一。 mode 参数默认为边界之间的中点,给出对称分布。 |
betavariate(alpha, beta) | Beta 分布。 参数的条件是 alpha > 0 和 beta > 0。 返回值的范围介于 0 和 1 之间。 |
expovariate(lambd) | 指数分布。 lambd 是 1.0 除以所需的平均值,它应该是非零的。 |
gammavariate() | Gamma 分布( 不是伽马函数) 参数的条件是 alpha > 0 和 beta > 0。 |
gauss(mu, sigma) | 正态分布,也称高斯分布。 mu 为平均值,而 sigma 为标准差。 此函数要稍快于下面所定义的 normalvariate() 函数。 |
lognormvariate(mu, sigma) | 对数正态分布。 如果你采用这个分布的自然对数,你将得到一个正态分布,平均值为 mu 和标准差为 sigma 。 mu 可以是任何值,sigma 必须大于零。 |
normalvariate(mu, sigma) | 正态分布。 mu 是平均值,sigma 是标准差。 |
vonmisesvariate(mu, kappa) | 冯·米塞斯分布。 mu 是平均角度,以弧度表示,介于0和 2*pi 之间,kappa 是浓度参数,必须大于或等于零。 如果 kappa 等于零,则该分布在 0 到 2*pi 的范围内减小到均匀的随机角度。 |
paretovariate(alpha) | 帕累托分布。 alpha 是形状参数。 |
weibullvariate(alpha, beta) | 威布尔分布。 alpha 是比例参数,beta 是形状参数。 |