day 05 小知识
1.如何解决大量数据计算
"""
运算的重点
优先级和结合性
左结合:从左往右计算:(绝大多数都是)
右结合:从右往左计算:(赋值运算符,正负号,索引和切片)
"""
"""
容器型数据类型(用一个变量记录所有数据)
列表(list)
元组(tuple)
集合(set)
字典(dict)
"""
2.列表的函数总结
num = [1, 100, 1000]
print(type(num))
print(num)
num.append(10000)
# 在最后添加??
print(num)
num.insert(1, 10)
# 在一号数字前面添加,??(程序员从0开始数数字)
print(num)
num.pop()
# 删除元素(默认最后一个)
print(num)
print(len(num))
# len()函数,计算列表长度
3.列表的索引和三种遍历
nums = [1, 100, 1000]
print(type(nums))
print(nums)
print(nums[0])
print('-'*10)
# 打印num列表中第三号位数字。索引
for i in range(len(nums)):
print(nums[i])
# nums[i]=100
# print(nums)
print('-'*10)
# 遍历列表中所有数字,可以读写
for x in nums:
print(x)
print('-'*10)
# 遍历列表中所有数字,只能读
for i, x in enumerate(nums):
print(i,x)
# 遍历列表中所有数字,可以用于加序号(文字)
day 05 昨日作业
-
1.1 猜数字,电脑在1-100之间随机一个数,输入数字,让电脑判断是大了还是小了。
import random answer = random.randrange(1, 101) counter = 0 while True: counter += 1 user_answer = int(input('请输入你猜的数字:')) if user_answer < answer: print('大一点') elif user_answer > answer: print('小一点') else: print('恭喜你猜对了') break if counter == 7: print('温馨提示:智商余额不足') break
-
1.2猜数字拓展,输入一个数字,让电脑随机猜
import time import random start = time.time() answer = int(input('请输入答案:')) com = random.randrange(1, 101) com_max = 101 com_min = 0 while True: if com < answer: print('电脑猜的数字:', com) print('大一点') com_min = com com = random.randrange(com_min, com_max) elif com > answer: print('电脑猜的数字:', com) print('小一点') com_max = com com = random.randrange(com_min, com_max) else: print('电脑猜的数字:', com) print('恭喜你猜对了') break end = time.time() print(f'程序执行时间:{end - start:.4f}s')
-
1.3 随机猜数字,输入一个数字,电脑通过二分法进行猜
import time start = time.time() answer = int(input('请输入答案:')) com_max = 101 com_min = 0 com = int((com_max - com_min) / 2) while True: if com < answer: print('电脑猜的数字:', com) print('大一点') com_min = com com = int((com_max - com_min) / 2) + com_min elif com > answer: print('电脑猜的数字:', com) print('小一点') com_max = com com = int((com_max - com_min) / 2) + com_min else: print('电脑猜的数字:', com) print('恭喜你猜对了') break end = time.time() print(f'程序执行时间:{end - start:.4f}s')
-
2.1 输入十个数字,计算,平均数,极大值,极小值
import time start = time.time() sum_num = 0 count = 0 max_num = 0 min_num = 101 while True: num = int(input("num:")) if 1 <= num <= 99: sum_num += num if max_num < num: max_num = num count += 1 if min_num > num: min_num = num if count == 10: avg = sum_num / count print('最大值:', max_num) print('最小值:', min_num) print('平均值:', avg) break else: print("重新输入")
-
2.2 输入十个数字,计算,平均数,全距(极差),方差,标准差(通过列表高级函数实现)
nums = [] for _ in range(10): temp = int(input('请输入:')) nums.append(temp) total = 0 mean_value = sum(nums) / len(nums) for num in nums: total += (num - mean_value) ** 2 var_value = total / (len(nums) - 1) # 方差 std_value = var_value ** 0.5 # 标准差 mean_value = sum(nums) / len(nums) max_value, min_value = max(nums), min(nums) print(f'均值: {mean_value}') print(f'方差: {var_value}') print(f'标准差: {std_value}') print(f'极差(全距): {max_value - min_value}')
day 05 课堂练习
-
1.1 丢两个骰子点数总和,各点数出现次数
import time import random start = time.time() a,b,c,d,e,f,g,h,i,j,k,l=0,0,0,0,0,0,0,0,0,0,0,0 for _ in range(60000): roll_1 = random.randrange(1, 7) roll_2 = random.randrange(1, 7) roll=roll_1+roll_2 if roll == 1: a += 1 if roll == 2: b += 1 if roll == 3: c += 1 if roll == 4: d += 1 if roll == 5: e += 1 if roll == 6: f += 1 if roll == 7: g += 1 if roll == 8: h += 1 if roll == 9: i += 1 if roll == 10: j += 1 if roll == 11: k += 1 if roll == 12: l += 1 print('点数1:', a) print('点数2:', b) print('点数3:', c) print('点数4:', d) print('点数5:', e) print('点数6:', f) print('点数7:', g) print('点数8:', h) print('点数9:', i) print('点数10:', j) print('点数11:', k) print('点数12:', l) end = time.time() print(f'程序执行时间:{end - start:.4f}s')
-
1.2 通过列表高级函数,完成上题,简便编程
import random fs = [0] * 6 for _ in range(60000): face = random.randrange(1, 7) fs[face - 1] += 1 print(fs) for i in range(len(fs)): print(f'{i + 1}点出现了{fs[i]}次') print('-' * 10) for i, a in enumerate(fs): print(f'{i + 1}点出现了{fs[i]}次')