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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容