Python之流程控制语句经典例题(3)

例题

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值