学习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
今天就学了列表,详情往上看,我也就偷偷懒了,上面更加详细
补充
之所以不设置重点选项是因为都很重要, 想要完整熟悉只有不断的多熟悉代码,认真看代码,理解代码形成的作用和原理,然后尝试自己写代码,从简单的开始,自主完成,多多练习,将知识点用上去学起来会容易很多
一开始都会很不知所措,不知道如何下手,慢慢的熟悉,练习多了也就慢慢轻车熟路了