if 条件语句
写一个简单的领书案例
# 去领书,咱们35个人
# 第一步 记住一个变量,叫 目标数量 35
target_count = 35
# 第二步 获取第二个变量,实际数量 是多少 ??
real_count = 34
# 第三步 比较 实际数量 == 目标数量
# 如果等于: 带书回家
if target_count == real_count:
print("数目正确,回家了")
# 否则 报个错
else:
print("不对")
Debug
- 打断点,在某行代码的左边,鼠标左键点一下
- 如何使用断点? 使用 debug 模式启动代码就行
断点断下来以后,可以单步运行 step over,可以看到程序如何执行if语句,循环语句
可以使用 step into 进入正在被调用的函数内部查看
几种集合类型
列表 list
[]
number_list = [1, 2, 3, 4, 5]
# 0 1 2 3 4
# -5 -4 -3 -2 -1
print(number_list)
# 第几个叫下标,英文叫index,一般缩写i。 这个在计算机里,一般从0开始数
print(number_list[0])
print(number_list[1])
print(number_list[2])
print(number_list[3])
print(number_list[4])
# 倒着拿 -1 -2 -3
print(number_list[-1])
print(number_list[-2])
# 切片,python特有的语法 起始的下标,和结束的下标,左闭右开,[0:3] 左边这个第0个,是包含的,右边这个3是不包含的意思就是取到2
print(number_list[0:3])
- 字典,dict,全称是 dictionary
#
# key: value 键 值 对 键和值 是一对儿
#
# 假如我们就用 {} 表示一个学生,这是一个字典
bsx = {
"name": "班邵雄",
"chinese": 88,
"math:": 77,
"english": 66
}
name_value = bsx["name"]
print(name_value)
循环
while 循环
- 特点是,先判断条件,再进循环体
number = 1
while number < 10:
# 循环体
print("正在循环,当前数字{}".format(number))
number = number + 1
print('循环结束了')
等效于
# 像 while 一样的,根据数字来循环的 -> range() range单词是范围的意思,从1开始,每次+1,加到10
for i in range(10):
print(i)
for 循环 (重点)
- 最灵活,可定制化程度最高的循环
- for 变量 in 一个可迭代(循环)的东西
number_list = [1, 2, 3, 4, 5]
# 基础 for 循环
for number in number_list:
print(number)
# 像 while 一样的,根据数字来循环的 -> range() range单词是范围的意思,从1开始,每次+1,加到10
for i in range(10):
print(i)
# 便利集合,比如 list 元组,下标, index,还有一种需求是,在循环遍历的同时,需要把index给获取到
for index, number in enumerate(number_list):
print(f"index: {index}, number: {number}")
函数
函数,一般也可叫 方法(method),英文是 function,function翻译过来是函数,或者功能。
- y = f(x)
- 封装一段代码,一般是重复的代码,或者是,经常修改的代码,或者是需要操作的数据一直在变动
- python中函数的定义是
def 函数名:
# 找出2个数中,较大的那个
# 原始形态:用 if else 去写
# 定义函数 define 定义 define function, 其中 my_max 函数名,
# ()叫参数列表,就是说你可以从外部,把你需要的数据,传递进函数体
# 这个传递,就是通过参数
def my_max(number1, number2):
if number1 > number2:
max_value = number1
else:
max_value = number2
return max_value
result = my_max(1, 2)
print(result)
result = my_max(3, 4)
print(result)
综合小案例
- 假设有一个班级,里面有若干个学生
- 每个学生有 姓名,语数外三门的成绩
- 根据语数外成绩排序
- 加难度,计算每个学生的平均分,然后根据平均分排序
第一步 弄一个数据类型来表示一个班的学生
- 怎么表示一个学生,用一个 字典
{}
,字典里有几个 key,是 名字和语数外成绩 - 怎么表示一堆学生,把一个一个的字典
{}
弄到一个list里面[]
得到的结果是[{}]
第二步 排序
- 根据 语数外成绩排序
# 综合小案例
# 假设有一个班级,里面有若干个学生
# 每个学生有 姓名,语数外三门的成绩
# 根据语数外成绩排序
# 加难度,计算每个学生的平均分,然后根据平均分排序
# 第一步 把这个一个班的学生,表示出来
## 1.1 先弄一个学生, 用一个字典 {}, ctrl + d 复制当前行
student1 = {'name': '刘琪', 'math': 88, 'chinese': 98, "english": 33}
student2 = {'name': '苏亚楠', 'math': 66, 'chinese': 48, "english": 63}
student3 = {'name': '宋敏', 'math': 97, 'chinese': 68, "english": 73}
## 1.2 弄一堆学生
student_list = [student1, student2, student3]
# 具体使用的排序规则,下面这个函数表示,使用数学成绩排序
def sort_by_math(my_student_list):
return my_student_list['math']
# 具体使用的排序规则,下面这个函数表示,使用语文成绩排序
def sort_by_chinese(my_student_list):
return my_student_list['chinese']
# 具体使用的排序规则,下面这个函数表示,使用英语成绩排序
def sort_by_english(my_student_list):
return my_student_list['english']
# 排序,有一个python自带的函数,sorted,直接调用就行
# 用法 sorted(你要排序的东西是啥,key=我按那个属性排序,reverse=排序是否倒转)
sorted_student_list = sorted(student_list, key=sort_by_english, reverse=True)
for student in sorted_student_list:
print(student)
第三步 计算平均分
- 平均分 = 各个课程的分数和 / 课程数目
- 平均分 排序
# 综合小案例
# 假设有一个班级,里面有若干个学生
# 每个学生有 姓名,语数外三门的成绩
# 根据语数外成绩排序
# 加难度,计算每个学生的平均分,然后根据平均分排序
# 第一步 把这个一个班的学生,表示出来
## 1.1 先弄一个学生, 用一个字典 {}, ctrl + d 复制当前行
student1 = {'name': '刘琪', 'math': 88, 'chinese': 98, "english": 33}
student2 = {'name': '苏亚楠', 'math': 66, 'chinese': 48, "english": 63}
student3 = {'name': '宋敏', 'math': 97, 'chinese': 68, "english": 73}
## 1.2 弄一堆学生
student_list = [student1, student2, student3]
# 具体使用的排序规则,下面这个函数表示,使用数学成绩排序
def sort_by_math(my_student_list):
return my_student_list['math']
# 具体使用的排序规则,下面这个函数表示,使用语文成绩排序
def sort_by_chinese(my_student_list):
return my_student_list['chinese']
# 具体使用的排序规则,下面这个函数表示,使用英语成绩排序
def sort_by_english(my_student_list):
return my_student_list['english']
# 具体使用的排序规则,下面这个函数表示,使用英语成绩排序
def sort_by_avg(my_student_list):
return my_student_list['avg']
# 3:计算平均分,按平均分排序
# 3.1 一个学生的平均分怎么算,这个学生 math+chinese+english, 除以 3
# student1_sum_score = student1['math'] + student1['chinese'] + student1['english']
# student1_avg = student1_sum_score / 3
# 3.2 所有学生的平均分,list, 循环
for student in student_list:
student_sum_score = student['math'] + student['chinese'] + student['english']
student_avg = student_sum_score / 3
# 把当前循环的这个学生的平均分,给它存储起来,怎么存,就存到当前这个学生的字典里面
student['avg'] = student_avg
# 3.3 按照平均分 avg 去排序
sorted_by_avg_student_list = sorted(student_list, key=sort_by_avg, reverse=True)
for student in sorted_by_avg_student_list:
print(student)