import random total=[] for i in range(30): total=list.append(random.randint(1,150)) print('列表',total)为什么输出的列表是空值
时间: 2024-03-15 14:45:38 浏览: 54
在您的代码中,第4行 `total=list.append(random.randint(1,150))` 出现了问题。
`list.append()` 方法会直接修改 `list` 对象本身,并不会返回一个新的列表对象。因此,您不应该将其赋值给 `total`。正确的写法应该是:
```
import random
total=[]
for i in range(30):
total.append(random.randint(1,150))
print('列表',total)
```
这样,每次循环时,都会将一个随机整数添加到 `total` 列表中,最终输出的就是一个包含 30 个随机整数的列表。
相关问题
解释每条语句作用import random import matplotlib.pyplot as plt def roll_dice(): #模拟掷骰子 roll = random.randint(1, 6) return roll def main(): #主函数 total_time = 1000 # 初始化列表 result_list = [0] * 11 # 初始化点数列表 roll_list = list(range(2, 13)) roll_dict = dict(zip(roll_list, result_list)) # 记录骰子1的的结果 roll1_list = [] roll2_list = [] for i in range(total_time): roll1 = roll_dice() roll2 = roll_dice() roll1_list.append(roll1) roll2_list.append(roll2) # 获取点数存储到对应次数位置 for j in range(2, 13): if (roll1 + roll2) == j: roll_dict[j] += 1 break for i, result in roll_dict.items(): print('点数{}的次数{},频率:{}'.format(i, result, result / total_time)) # 数据可视化 x = range(1, total_time + 1) plt.scatter(x, roll1_list, c='red', alpha=0.5) plt.scatter(x, roll2_list, c='green', alpha=0.5) plt.show() if __name__ == '__main__': main()
1. `import random`: 导入Python内置的`random`模块,用于生成随机数。
2. `import matplotlib.pyplot as plt`: 导入`matplotlib`模块中的`pyplot`子模块,用于生成数据可视化图表。
3. `def roll_dice():`:定义一个函数`roll_dice()`,用于模拟掷骰子的过程。
4. `roll = random.randint(1, 6)`: 生成1~6之间的随机整数,模拟骰子掷出的结果。
5. `return roll`: 返回骰子掷出的结果。
6. `def main():`: 定义主函数`main()`,用于实现主要的骰子模拟和数据可视化过程。
7. `total_time = 1000`: 设定掷骰子的总次数为1000次。
8. `result_list = [0] * 11`: 初始化一个长度为11的列表,用于记录掷骰子后每个点数出现的次数。
9. `roll_list = list(range(2, 13))`: 初始化一个包含骰子点数2~12的列表。
10. `roll_dict = dict(zip(roll_list, result_list))`: 将骰子点数列表和次数列表打包成字典,用于记录每个点数出现的次数。
11. `roll1_list = []`和`roll2_list = []`: 初始化两个空列表,用于记录每次掷骰子的结果。
12. `for i in range(total_time):`: 循环掷骰子的总次数。
13. `roll1 = roll_dice()`和`roll2 = roll_dice()`: 分别模拟掷两个骰子的结果。
14. `roll1_list.append(roll1)`和`roll2_list.append(roll2)`: 将每次掷骰子的结果添加到对应的列表中。
15. `for j in range(2, 13):`: 循环每个可能的点数。
16. `if (roll1 + roll2) == j:`: 如果掷出的两个骰子的点数之和等于当前点数。
17. `roll_dict[j] += 1`: 将当前点数出现次数加1。
18. `break`: 跳出循环,因为已经确定了当前点数的出现次数。
19. `for i, result in roll_dict.items():`: 遍历字典中的每个元素,获取每个点数出现的次数和频率。
20. `print('点数{}的次数{},频率:{}'.format(i, result, result / total_time))`: 打印每个点数出现的次数和频率。
21. `x = range(1, total_time + 1)`: 生成一个长度为total_time的序列,用于表示每次掷骰子的次数。
22. `plt.scatter(x, roll1_list, c='red', alpha=0.5)`和`plt.scatter(x, roll2_list, c='green', alpha=0.5)`: 用散点图的方式将每次掷骰子的结果可视化,其中红色散点表示第一个骰子的结果,绿色散点表示第二个骰子的结果。
23. `plt.show()`: 显示可视化图表。
24. `if __name__ == '__main__':`: 判断当前脚本是否为主程序。
25. `main()`: 如果当前脚本是主程序,则执行主函数`main()`。
1.(实践教程69-6)编写程序随机产生100个两位正整数,并将这100个数写入文本文件number.txt中,要求每行10个整数,整数之间用一个空格分隔。 2.(实践教程68-2)计算运动会某个参赛选手的得分。假设共有10个裁判,每个裁判给该选手打分(分数在0-10之间)后,去掉一个最高分和一个最低分之后的平均分即为该运动员的最后得分。某位选手的得分数据保存在文件中,文件的内容如下: 9.37 9.52 9.98 10 9.85 9.73 9.93 9.76 9.81 9.08 各数据之间使用一个空格分隔。请编写程序从文件中读取该选手的成绩并计算最后得分(保留2位小数)。 3.. (实践教程68-3)文件68-3.txt中每一行内容分别为购买的商品名称、价格、数量,求出所购商品花费的总费用。 apple 10 3 focus 100000 1 surface 8000 2 thinkpad 7000 3 chicken 10 3 7(实践教程69-4).新建一个文本文件69-4socre.csv,用来保存10名考生的3门课程的成绩,内容如下: 考号 程序设计 细胞生物 生理学 10153450101 72 96 88 10153450102 68 88 73 10153450103 63 63 66 10153450104 95 64 65 10153450105 89 88 57 10153450106 77 87 77 10153450107 67 64 97 10153450108 44 99 64 10153450109 82 73 75 10153450110 79 78 85 以上各分数项均使用英文逗号分隔。请编写程序读取该文件内容,统计每门课的平均分、最高分和最低分。用python编写程序
1. 随机产生100个两位正整数,并将这100个数写入文本文件number.txt中,要求每行10个整数,整数之间用一个空格分隔。
```python
import random
# 生成100个两位正整数
nums = [random.randint(10, 99) for _ in range(100)]
# 将数字分成每行10个的形式
lines = []
for i in range(0, len(nums), 10):
line = ' '.join(map(str, nums[i:i+10]))
lines.append(line)
# 将数字写入文件
with open('number.txt', 'w') as f:
f.write('\n'.join(lines))
```
2. 计算运动会某个参赛选手的得分。
```python
# 从文件中读取得分数据
with open('scores.txt', 'r') as f:
scores = list(map(float, f.readline().strip().split()))
# 去掉一个最高分和一个最低分
scores.remove(max(scores))
scores.remove(min(scores))
# 计算平均分
avg_score = sum(scores) / len(scores)
print(f"该选手最后得分为:{avg_score:.2f}")
```
3. 求出所购商品花费的总费用。
```python
# 从文件中读取商品及价格、数量
with open('shopping.txt', 'r') as f:
lines = f.readlines()
# 计算总花费
total_cost = 0
for line in lines:
name, price, num = line.strip().split()
total_cost += int(price) * int(num)
print(f"所购商品花费的总费用为:{total_cost}")
```
4. 统计每门课的平均分、最高分和最低分。
```python
import csv
# 从csv文件中读取成绩数据
with open('69-4score.csv', 'r') as f:
reader = csv.reader(f)
# 跳过表头
next(reader)
# 统计每门课的分数
program_scores = []
cell_scores = []
physio_scores = []
for row in reader:
program_scores.append(int(row[1]))
cell_scores.append(int(row[2]))
physio_scores.append(int(row[3]))
# 计算每门课的平均分、最高分和最低分
program_avg = sum(program_scores) / len(program_scores)
program_max = max(program_scores)
program_min = min(program_scores)
cell_avg = sum(cell_scores) / len(cell_scores)
cell_max = max(cell_scores)
cell_min = min(cell_scores)
physio_avg = sum(physio_scores) / len(physio_scores)
physio_max = max(physio_scores)
physio_min = min(physio_scores)
# 输出结果
print(f"程序设计:平均分{program_avg:.2f},最高分{program_max},最低分{program_min}")
print(f"细胞生物:平均分{cell_avg:.2f},最高分{cell_max},最低分{cell_min}")
print(f"生理学:平均分{physio_avg:.2f},最高分{physio_max},最低分{physio_min}")
```
阅读全文