编写程序,随机产生30个1-100之间的随机整数,按5行6列的格式输出
大家好,我是皮皮。
一、前言
前几天在某乎上看到了一个粉丝提问,编写程序,随机产生30个1-100之间的随机整数并存入5行6列的二维列表中,按5行6列的格式输出?这里拿出来跟大家一起分享下。
二、实现过程
后来问了【ChatGPT】,给出的回答如下:
以下是一个Python程序来实现上述任务:
# coding:utf-8
# @Time : 2023/5/16 20:05
# @Author: Python进阶者
# @公众号: Python爬虫与数据挖掘
# @website : http://pdcfighting.com/
# @File : 111.py
# @Software: PyCharm
import random
# 随机生成30个1到100之间的整数
numbers = [random.randint(1, 100) for i in range(30)]
# 将生成的数字按5行6列的格式存储到二维列表中
rows = 5
cols = 6
matrix = [[0 for j in range(cols)] for i in range(rows)]
k = 0
for i in range(rows):
for j in range(cols):
matrix[i][j] = numbers[k]
k += 1
# 按5行6列格式输出二维列表中的数字
for i in range(rows):
for j in range(cols):
print(matrix[i][j], end="\t")
print("\n")
解释:
random.randint(1, 100)
是用来生成1到100之间的随机整数的函数。- 列表推导式
[random.randint(1, 100) for i in range(30)]
用来生成包含30个1到100之间随机整数的列表。 [[0 for j in range(cols)] for i in range(rows)]
是用来生成一个5行6列的二维列表,列表中所有元素都初始化为0。for
循环用来将随机数填充到二维列表中。- 最后一个
for
循环用来按5行6列的格式输出二维列表中的数字。
运行之后,可以得到预期的结果:
后来看到问答区还有其他的解答,一起来看。下面是【江夏】的回答:
import random
# 生成 30 个 1-100 的随机整数,并存入 5 行 6 列的二维列表中
data = [[random.randint(1, 100) for j in range(6)] for i in range(5)]
# 输出二维列表
for i in range(5):
for j in range(6):
print(f"{data[i][j]:2d}", end=" ")
print()
# 统计最大值、最小值、平均值和大于平均值、小于平均值的个数
max_val = max(map(max, data))
min_val = min(map(min, data))
sum_val = sum(map(sum, data))
avg_val = sum_val / (5 * 6)
above_avg_count = len([i for row in data for i in row if i > avg_val])
below_avg_count = len([i for row in data for i in row if i < avg_val])
# 输出统计结果
print(f"最大值:{max_val}")
print(f"最小值:{min_val}")
print(f"平均值:{avg_val:.2f}")
print(f"大于平均值的个数:{above_avg_count}")
print(f"小于平均值的个数:{below_avg_count}")
得到的结果如下所示:
三、总结
大家好,我是皮皮。这篇文章主要盘点了一个Python
编程题目,帮助粉丝顺利解决了问题。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
[图片上传失败...(image-1a7ef4-1684477105625)]