python-課堂2

if 條件語(yǔ)句

寫(xiě)一個(gè)簡(jiǎn)單的領(lǐng)書(shū)案例

# 去領(lǐng)書(shū)腮郊,咱們35個(gè)人
# 第一步 記住一個(gè)變量济赎,叫 目標(biāo)數(shù)量 35
target_count = 35
# 第二步 獲取第二個(gè)變量塘娶,實(shí)際數(shù)量 是多少 纹坐?枝冀?
real_count = 34
# 第三步 比較 實(shí)際數(shù)量 == 目標(biāo)數(shù)量

# 如果等于: 帶書(shū)回家
if target_count == real_count:
    print("數(shù)目正確,回家了")
# 否則 報(bào)個(gè)錯(cuò)
else:
    print("不對(duì)")

Debug

  • 打斷點(diǎn),在某行代碼的左邊宾茂,鼠標(biāo)左鍵點(diǎn)一下
  • 如何使用斷點(diǎn)瓷马? 使用 debug 模式啟動(dòng)代碼就行

斷點(diǎn)斷下來(lái)以后拴还,可以單步運(yùn)行 step over跨晴,可以看到程序如何執(zhí)行if語(yǔ)句,循環(huán)語(yǔ)句
可以使用 step into 進(jìn)入正在被調(diào)用的函數(shù)內(nèi)部查看

幾種集合類型

列表 list

  • []
number_list = [1, 2, 3, 4, 5]
#              0  1  2  3  4
#              -5 -4 -3 -2 -1            
print(number_list)
# 第幾個(gè)叫下標(biāo),英文叫index片林,一般縮寫(xiě)i端盆。 這個(gè)在計(jì)算機(jī)里,一般從0開(kāi)始數(shù)
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特有的語(yǔ)法 起始的下標(biāo)焕妙,和結(jié)束的下標(biāo),左閉右開(kāi)弓摘,[0:3] 左邊這個(gè)第0個(gè)焚鹊,是包含的,右邊這個(gè)3是不包含的意思就是取到2
print(number_list[0:3])

  • 字典韧献,dict末患,全稱是 dictionary
#
#  key: value       鍵 值 對(duì)   鍵和值 是一對(duì)兒
#
# 假如我們就用 {} 表示一個(gè)學(xué)生,這是一個(gè)字典
bsx = {
    "name": "班邵雄",
    "chinese": 88,
    "math:": 77,
    "english": 66
}
name_value = bsx["name"]
print(name_value)

循環(huán)

while 循環(huán)

  • 特點(diǎn)是锤窑,先判斷條件璧针,再進(jìn)循環(huán)體
number = 1
while number < 10:
    # 循環(huán)體
    print("正在循環(huán),當(dāng)前數(shù)字{}".format(number))
    number = number + 1

print('循環(huán)結(jié)束了')

等效于

# 像 while 一樣的渊啰,根據(jù)數(shù)字來(lái)循環(huán)的 -> range() range單詞是范圍的意思探橱,從1開(kāi)始,每次+1绘证,加到10
for i in range(10):
    print(i)

for 循環(huán) (重點(diǎn))

  • 最靈活隧膏,可定制化程度最高的循環(huán)
    • for 變量 in 一個(gè)可迭代(循環(huán))的東西
number_list = [1, 2, 3, 4, 5]

# 基礎(chǔ) for 循環(huán)
for number in number_list:
    print(number)

# 像 while 一樣的,根據(jù)數(shù)字來(lái)循環(huán)的 -> range() range單詞是范圍的意思嚷那,從1開(kāi)始胞枕,每次+1,加到10
for i in range(10):
    print(i)

# 便利集合车酣,比如 list 元組曲稼,下標(biāo), index,還有一種需求是湖员,在循環(huán)遍歷的同時(shí)贫悄,需要把index給獲取到
for index, number in enumerate(number_list):
    print(f"index: {index}, number: {number}")

函數(shù)

函數(shù),一般也可叫 方法(method)娘摔,英文是 function窄坦,function翻譯過(guò)來(lái)是函數(shù),或者功能。

  • y = f(x)
  • 封裝一段代碼鸭津,一般是重復(fù)的代碼彤侍,或者是,經(jīng)常修改的代碼逆趋,或者是需要操作的數(shù)據(jù)一直在變動(dòng)
  • python中函數(shù)的定義是 def 函數(shù)名:
# 找出2個(gè)數(shù)中盏阶,較大的那個(gè)
# 原始形態(tài):用 if else 去寫(xiě)

# 定義函數(shù) define 定義 define function, 其中 my_max 函數(shù)名闻书,
# ()叫參數(shù)列表名斟,就是說(shuō)你可以從外部,把你需要的數(shù)據(jù)魄眉,傳遞進(jìn)函數(shù)體
# 這個(gè)傳遞砰盐,就是通過(guò)參數(shù)
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)

綜合小案例

  • 假設(shè)有一個(gè)班級(jí),里面有若干個(gè)學(xué)生
  • 每個(gè)學(xué)生有 姓名坑律,語(yǔ)數(shù)外三門的成績(jī)
  • 根據(jù)語(yǔ)數(shù)外成績(jī)排序
  • 加難度岩梳,計(jì)算每個(gè)學(xué)生的平均分,然后根據(jù)平均分排序

第一步 弄一個(gè)數(shù)據(jù)類型來(lái)表示一個(gè)班的學(xué)生

  • 怎么表示一個(gè)學(xué)生晃择,用一個(gè) 字典 {}冀值,字典里有幾個(gè) key,是 名字和語(yǔ)數(shù)外成績(jī)
  • 怎么表示一堆學(xué)生藕各,把一個(gè)一個(gè)的字典{}弄到一個(gè)list里面 [] 得到的結(jié)果是 [{}]

第二步 排序

  • 根據(jù) 語(yǔ)數(shù)外成績(jī)排序
# 綜合小案例
# 假設(shè)有一個(gè)班級(jí)池摧,里面有若干個(gè)學(xué)生
# 每個(gè)學(xué)生有 姓名,語(yǔ)數(shù)外三門的成績(jī)
# 根據(jù)語(yǔ)數(shù)外成績(jī)排序
# 加難度激况,計(jì)算每個(gè)學(xué)生的平均分作彤,然后根據(jù)平均分排序

# 第一步 把這個(gè)一個(gè)班的學(xué)生,表示出來(lái)
## 1.1 先弄一個(gè)學(xué)生乌逐, 用一個(gè)字典 {}, ctrl + d  復(fù)制當(dāng)前行
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 弄一堆學(xué)生
student_list = [student1, student2, student3]


# 具體使用的排序規(guī)則竭讳,下面這個(gè)函數(shù)表示,使用數(shù)學(xué)成績(jī)排序
def sort_by_math(my_student_list):
    return my_student_list['math']


# 具體使用的排序規(guī)則浙踢,下面這個(gè)函數(shù)表示绢慢,使用語(yǔ)文成績(jī)排序
def sort_by_chinese(my_student_list):
    return my_student_list['chinese']


# 具體使用的排序規(guī)則,下面這個(gè)函數(shù)表示洛波,使用英語(yǔ)成績(jī)排序
def sort_by_english(my_student_list):
    return my_student_list['english']


# 排序胰舆,有一個(gè)python自帶的函數(shù),sorted蹬挤,直接調(diào)用就行
# 用法 sorted(你要排序的東西是啥缚窿,key=我按那個(gè)屬性排序,reverse=排序是否倒轉(zhuǎn))
sorted_student_list = sorted(student_list, key=sort_by_english, reverse=True)

for student in sorted_student_list:
    print(student)

第三步 計(jì)算平均分

  • 平均分 = 各個(gè)課程的分?jǐn)?shù)和 / 課程數(shù)目
  • 平均分 排序
# 綜合小案例
# 假設(shè)有一個(gè)班級(jí)焰扳,里面有若干個(gè)學(xué)生
# 每個(gè)學(xué)生有 姓名倦零,語(yǔ)數(shù)外三門的成績(jī)
# 根據(jù)語(yǔ)數(shù)外成績(jī)排序
# 加難度误续,計(jì)算每個(gè)學(xué)生的平均分,然后根據(jù)平均分排序

# 第一步 把這個(gè)一個(gè)班的學(xué)生扫茅,表示出來(lái)
## 1.1 先弄一個(gè)學(xué)生蹋嵌, 用一個(gè)字典 {}, ctrl + d  復(fù)制當(dāng)前行
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 弄一堆學(xué)生
student_list = [student1, student2, student3]


# 具體使用的排序規(guī)則,下面這個(gè)函數(shù)表示葫隙,使用數(shù)學(xué)成績(jī)排序
def sort_by_math(my_student_list):
    return my_student_list['math']


# 具體使用的排序規(guī)則栽烂,下面這個(gè)函數(shù)表示,使用語(yǔ)文成績(jī)排序
def sort_by_chinese(my_student_list):
    return my_student_list['chinese']


# 具體使用的排序規(guī)則停蕉,下面這個(gè)函數(shù)表示愕鼓,使用英語(yǔ)成績(jī)排序
def sort_by_english(my_student_list):
    return my_student_list['english']


# 具體使用的排序規(guī)則钙态,下面這個(gè)函數(shù)表示慧起,使用英語(yǔ)成績(jī)排序
def sort_by_avg(my_student_list):
    return my_student_list['avg']


# 3:計(jì)算平均分,按平均分排序
# 3.1 一個(gè)學(xué)生的平均分怎么算册倒,這個(gè)學(xué)生 math+chinese+english蚓挤, 除以 3
# student1_sum_score = student1['math'] + student1['chinese'] + student1['english']
# student1_avg = student1_sum_score / 3
# 3.2 所有學(xué)生的平均分,list驻子, 循環(huán)
for student in student_list:
    student_sum_score = student['math'] + student['chinese'] + student['english']
    student_avg = student_sum_score / 3
    # 把當(dāng)前循環(huán)的這個(gè)學(xué)生的平均分灿意,給它存儲(chǔ)起來(lái),怎么存崇呵,就存到當(dāng)前這個(gè)學(xué)生的字典里面
    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)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缤剧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子域慷,更是在濱河造成了極大的恐慌荒辕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犹褒,死亡現(xiàn)場(chǎng)離奇詭異抵窒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叠骑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門李皇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人宙枷,你說(shuō)我怎么就攤上這事掉房。” “怎么了慰丛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵卓囚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我璧帝,道長(zhǎng)捍岳,這世上最難降的妖魔是什么富寿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮锣夹,結(jié)果婚禮上页徐,老公的妹妹穿的比我還像新娘。我一直安慰自己银萍,他們只是感情好变勇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著贴唇,像睡著了一般搀绣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戳气,一...
    開(kāi)封第一講書(shū)人閱讀 51,610評(píng)論 1 305
  • 那天链患,我揣著相機(jī)與錄音,去河邊找鬼瓶您。 笑死麻捻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呀袱。 我是一名探鬼主播贸毕,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼夜赵!你這毒婦竟也來(lái)了明棍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤寇僧,失蹤者是張志新(化名)和其女友劉穎摊腋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體婉宰,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡歌豺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了心包。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片类咧。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蟹腾,靈堂內(nèi)的尸體忽然破棺而出痕惋,到底是詐尸還是另有隱情,我是刑警寧澤娃殖,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布值戳,位于F島的核電站,受9級(jí)特大地震影響炉爆,放射性物質(zhì)發(fā)生泄漏堕虹。R本人自食惡果不足惜卧晓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赴捞。 院中可真熱鬧逼裆,春花似錦、人聲如沸赦政。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恢着。三九已至桐愉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掰派,已是汗流浹背从诲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碗淌,地道東北人盏求。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像亿眠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子磅废,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容