例题
6.编写程序,生成10个随机数,每个元素的值介于1到100之间,并计算所有元素的和、平均值。
7.编写程序,根据输入的行列数值,生成相应的矩阵(其中元素为随机数)。
8.编写程序实现打印100以内的素数。
一、解析
这几个题都要导入random(随机)包
要生成随机数,要用到random.randint( )方法
random.randint(a,b)
#函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。
第六个题目:通过random生成10个随机数,并求出和及平均值,这个题较为容易实现。
第七个题目:要再导入numpy包,利用numpy.zeros()方法创建矩阵
numpy.zeros(shape,dtype=float,order = 'C')
#返回给定形状和类型的新数组,用0填充。
#shape 数组形状
#dtype 数据类型,可选
#order 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
关于numpy的用法可以参考菜鸟教程https://www.runoob.com/numpy/numpy-array-creation.html
第八个题目:打印100以内的素数。
题目的思想可以参考这一篇博客https://blog.csdn.net/cbjcry/article/details/84917392
二、详解
1.第六题
解法:
import random
i = 1
a = []
sum = 0
while i <= 10:
b = random.randint(1,100)
a.append(b)
i+=1
for c in a:
sum = sum+c
print("十个随机数为:")
print(a)
print("十个随机数总和为:")
print(sum)
print("十个随机数平均数为:")
print(sum/10)
演示过程如下
十个随机数为:
[15, 32, 17, 64, 63, 99, 48, 97, 66, 12]
十个随机数总和为:
513
十个随机数平均数为:
51.3
2.第七题
第一种解法(不用导入numpy包):
import random
x = y = 0 #x行 y列
n = int(input("请输入n行:"))
m = int(input("请输入m列:"))
while x<n: #先行后列
y=0 #置0
while y<m:
print(random.randint(1,100),end='\t')
y+=1
print()
x+=1
执行结果如下
请输入n行:3
请输入m列:4
36 52 3 95
53 39 42 80
27 69 99 30
Process finished with exit code 0
第二种解法:(导入numpy包)
import random
import numpy as np
x,y = map(int,input("请输入行和列的值,中间用逗号隔开").split(","))
aa = np.zeros((x,y),dtype=int)
for i in range(0,x):
for j in range(0,y):
aa[i][j] = random.randint(1,100)
print(aa)
执行结果如下
请输入行和列的值,中间用逗号隔开3,4
[[34 35 95 68]
[ 2 12 42 2]
[90 96 8 3]]
Process finished with exit code 0
3.第八题
第一种解法:
#打印100以内的素数
for x in range(2,100):
for i in range(2,x):
if x % i == 0:
break
else:
print(x,end=" ")
执行结果如下
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Process finished with exit code 0