学习Python第四天
课后作业
- 第一题
import random#导入包
answer = random.randrange(1, 101)#使用函数导入一个随机数
count = 0#定义一个初始变量
while True:
user_answer = int(input('你猜是多少'))#输入你要猜的数
count += 1
if answer > user_answer:#分枝
print('稍微大一点')
pass
elif answer < user_answer:分枝
print('稍微小一点')
else:
print(f'恭喜你猜对了')#猜对了就用break终止循环
break
if count == 7:
print('智商余额不足')
-
第二题
#定义变量 max_value = 0 total, count = 0, 0 min_value = 100 while count < 10: a = int(input('请输入一个整数')) if 0 < a <= 100:# 规范输入范围,在范围内才算输入次数 count += 1 total += a if a >= max_value:#输入的只大于最大值,则将输入的值赋值给最大值 max_value = a if a <= min_value:# 输入的只小于最小值,则将输入的值赋值给最小值 min_value = a else:#不在范围内重新输入,不算次数 print('无效输入') avg = total / 10 print(f'最大值为{max_value},平均数为{avg}, 最小值为{min_value}')
课堂练习
-
摇一颗骰子,摇60000次,计算各点数出现的次数
-
摇两颗骰子,摇60000次,计算两个骰子点数和出现的次数
题目不难,主要是复杂,流程太多
骰子数越多越要命
import random l1 = l2 = l3 = l4 = l5 = l6 = 0 for _ in range(1, 60001): a1 = random.randrange(1, 7) if a == 1: l1 += 1 elif a == 2: l2 += 1 elif a == 3: l3 += 1 elif a == 4: l4 += 1 elif a == 5: l5 += 1 elif a == 6: l6 += 1 print(f'输出1点{l1}次, 输出2点{l2}次, 输出3点{l3}次, 输出4点{l4}次, 输出5点{l5}次, 输出6点{l6}次') import random l1 = l2 = l3 = l4 = l5 = l6 = l7 = l8 = l9 = l10 = l11 = l12 = 0 for _ in range(1, 60001): a1 = random.randrange(1, 7) a2 = random.randrange(1, 7) a = a1 + a2 if a == 2: l1 += 1 elif a == 3: l2 += 1 elif a == 4: l3 += 1 elif a == 5: l4 += 1 elif a == 6: l5 += 1 elif a == 7: l6 += 1 elif a == 8: l7 += 1 elif a == 9: l8 += 1 elif a == 10: l9 += 1 elif a == 11: l10 += 1 elif a == 12: l11 += 1 elif a == 12: l12 += 1 print(f'输出2点{l1}次, 输出3点{l2}次, 输出4点{l3}次, 输出5点{l4}次, 输出7点{l5}次, 输出7点{l6}次,输出8点{l7}次, 输出9点{l8}次, 输出10点{l9}次, 输出11点{l10}次, 输出12点{l11}次')
容器数据类型
用一个变量可以保存多个数据
-
列表---------->list
-
元组---------->tuple
-
集合---------->set
-
字典---------->dict
先选学
nums = [10, 100, 1000]# 随便定义一个列表 # 输出类型 print(type(nums)) student_rules = ['热爱祖国', '好好学习', '尊敬师长', '拥护中国共产党'] # 列表里面可以放各种数据类型,可以交叉放 print(nums, student_rules) # 追加,在列表末尾追加元素 nums.append(10000) # 插入,在列表指定位置插入元素 nums.insert(0, 1) # 删除最末尾一个元素 nums.pop()
列表遍历
把每一个元素依次取出来
nums = [1, 23, 34, 45, 73, 99] print(nums[2])#从零开始第二个元素 print(nums[-3])#从末尾往前数第三个 nums.append(100) nums.append(18)#末尾添加元素,随便加 nums = [1, 23, 34, 45, 73, 99] a = len(nums)# 求出列表长度,,,len函数 nums = [1, 23, 34, 45, 73, 99] for i in range(len(nums)):#按顺序遍历列表, print(i, nums[i])# 输出带上顺序 print('-'*20) # 高级的分割线,乘以多少得多少 for i, num in enumerate(nums):# 这是一种神奇的遍历函数,同时带出数据和元素 # 在直接遍历列表的同时又可以取到列表的长度,第一个变量表示长度 print(i, num) print('-'*20) for i, num in enumerate(nums): print(num)
整理刚才那个要命的课堂练习
import random fs = [0] * 6 # 重复运算,一个0变六个零 print(fs) for _ in range(60000): # 不需要用到的变量用下划线显得比较专业高级 face = random.randrange(1, 7) # 在范围内选择随机数 fs[face - 1] += 1 # 列表都从0开始数 for i in range(len(fs)): print(f'摇到{i + 1}点的次数为{fs[i]}') for i, value in enumerate(fs): print(f'摇到{i + 1}点的次数为{value}')
优化昨天的作业
nums = [] # 定义一个空列表 total = 0 # 搞出一个变量一会用,不知道提前搞的,先搞下面代码,用到再加也行 for _ in range(10): temp = int(input('请输入一个数')) nums.append(temp) # 将输入的数字加入到列表 mean_value = sum(nums) / len(nums) # 使用求和函数求和,在除以列表长度 for num in nums: # 遍历列表 total = (num - mean_value) ** 2 # 为方差做准备 pass # 方差----->variance var_value = total // (len(nums) - 1) # 求出方差 # 标准差------> standed deviation std_value = var_value ** 0.5 max_value, min_value = max(nums), min(nums) print(f'平均数为{mean_value}, 方差为{var_value}, 标准差为{std_value}, 最大值为{max_value}, 最小值为{min_value}')
-
本周总结
从写第一个代码到现在四天时间,总结一周获益匪浅
-
了解变量的含义,就行了一些简单的数据运算
-
认识数据类型
-
input的了解及运用,今后也会经常用到,短短四天烂熟于心
-
二进制(bin)、八进制(oct)、十进制、十六进制(hex),相互转换
-
格式化输出:例如print(’%.1f + %.1f = %.1f’%(a1, b1, a1 + b1))、(print(f---------{变量}--------{变量}—))
print(’-------{}-----{}.fromat(变量, 变量)’)
-
布尔型
非空字符串转换成布尔类型都是True
空字符串(不是空格)转成布尔类型对应的值是False
c = bool(input('c = '))
非0数值对应布尔值都是True
0对应布尔值为False
d = bool() -
Python中的运算符
赋值运算符: 右边的复制给左边、
符合运算符: += -= *= /=…
关系运算符(比较运算符): < > >= <= == !=: 产生布尔值(True/False)
逻辑运算符:把多个布尔值处理成一个布尔值 (多个布尔值到组合) and(与) or(或) not(非)
-
分支结构的学习
if条件:
elif条件:
elif条件:
elif条件:
elif条件:
else:
-
循环结构
for i in range(0, n)n次循环
for i in range(m, n)m-n次循环
-
while循环
while 条件
-
-
注意确定终止条件以防形成死循环
-
用一个变量可以保存多个数据
列表---------->list
元组---------->tuple
集合---------->set
字典---------->dict
今天就学了列表,详情往上看,我也就偷偷懒了,上面更加详细
补充
之所以不设置重点选项是因为都很重要, 想要完整熟悉只有不断的多熟悉代码,认真看代码,理解代码形成的作用和原理,然后尝试自己写代码,从简单的开始,自主完成,多多练习,将知识点用上去学起来会容易很多
一开始都会很不知所措,不知道如何下手,慢慢的熟悉,练习多了也就慢慢轻车熟路了