python-课堂2

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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容