乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      第4、5、6關(guān)課后習(xí)題講解

       豬一樣迷人 2019-12-12

      第四關(guān)

      第四關(guān)課后習(xí)題都是列表和字典的數(shù)據(jù)提取相關(guān)

      主要對(duì)于列表偏移量,字典鍵值對(duì)的知識(shí)鞏固

      做這類題目的時(shí)候,我們不用一次到位,可以把每一層拆分出來(lái),一步步去取值

      先看第一個(gè)題目 list1 = [{‘嫉妒’:’envy’},{‘恨’:’hatred’},{‘愛(ài)’:’love’}]

      這里是一個(gè)大列表,套三個(gè)字典

      題目要求我們把 love 取出來(lái)

      因?yàn)?love 在列表的第三個(gè)元素中,所以第一步,我們可以取出列表中的第三個(gè)元素(list1[2]),第三個(gè)元素的偏移量為2

      取出來(lái)的結(jié)果是 {‘愛(ài)’:’love’}

      接下來(lái)我們可以用提取字典的值的格式,取出list1[2]中鍵’愛(ài)’所對(duì)應(yīng)的值,即’love’

      最后將取出的結(jié)果打印出來(lái),print(list1[2][‘愛(ài)’])

      第二題,同樣要把love取出來(lái),但這里的是字典套列表的一個(gè)變量dict1 = {1:[‘cake’,’scone’,’puff’],2:[‘London’,’Bristol’,’Bath’],3:[‘love’,’hatred’,’envy’]}

      love 在字典的鍵 3 的值里面,所以第一步,先把 鍵為3 的值取出來(lái)

      dict1[3]

      注意上面這里的3不是偏移量,而是字典的鍵

      取出后結(jié)果為[‘love’,’hatred’,’envy’],是一個(gè)列表, love 是該列表的第一個(gè)元素

      可以直接通過(guò)偏移量取出,并打印出來(lái) print(dict1[3][0])

      列表第一個(gè)元素的偏移量為0

      來(lái)看個(gè)升級(jí)版的,進(jìn)階練習(xí)

      這樣一個(gè)列表,很復(fù)雜,看著就頭暈,那我們可以先把各個(gè)元素的距離稍微拉開(kāi)一點(diǎn),這樣看著比較舒服

      可以看到,在最大的列表中,套著6個(gè)元素

      題目要求我們?nèi)〕觥袄恰?,那我們?shù)一下,“狼”在大列表的第6個(gè)元素內(nèi)

      第一步,townee[5]

      取出后又是一個(gè)列表,[ {‘主角’:’小紅帽’, ‘配角1’:’外婆’, ‘配角2’:’獵人’},  {‘反面角色’:’狼’} ] ,則可以根據(jù)偏移量再取一遍,townee[5][1]

      取到最后是一個(gè)字典  {‘反面角色’:’狼’},在根據(jù)鍵’反面角色’把值取出來(lái)即可

      print(townee[5][1][‘反面角色’])

      大家可以多試一下,去取出不同的值

      多練才會(huì)熟悉熟練,這樣才會(huì)進(jìn)步

      正所謂“好記性不如爛筆頭”,學(xué)編程自然也離不開(kāi)多實(shí)操寫代碼。

      編程大神最開(kāi)始也是在bug中成長(zhǎng)的,第一次有問(wèn)題,自己去搜索解決,沒(méi)解決的再提問(wèn),遇到的問(wèn)題多了,搜索次數(shù)多了,自然印象就加深了。

      第五關(guān):

      第五關(guān)的必做練習(xí),比較簡(jiǎn)單,我講快一點(diǎn)。然后再仔細(xì)講一下進(jìn)階練習(xí)

      必做練習(xí)里,簡(jiǎn)化一下題目的要求,其實(shí)就是:打印數(shù)字1到7,但不打印4

      既然要打印多個(gè)數(shù)字,那我們用到循環(huán)的方式,for 循環(huán) 和 while 循環(huán) 都可以

      那要求不打印4,就需要進(jìn)行一個(gè)條件的判斷,用到if語(yǔ)句

      那我們就確定了解題的思路,循環(huán) 條件判斷

      先來(lái)看for循環(huán)的代碼

      for num in range(1,8):   

      num的值分別為1,2,3,4,5,6,7

      if num != 4:

       print(num)

      !=是不等于的意思,當(dāng)num不等于4的時(shí)候,執(zhí)行打印語(yǔ)句

      當(dāng)num等于4的時(shí)候,由于不符合if的條件,也沒(méi)有其他語(yǔ)句需要執(zhí)行,所以會(huì)直接跳過(guò),進(jìn)行下一次的循環(huán)

      再來(lái)看一下while 循環(huán)

      用while循環(huán),且要規(guī)定循環(huán)次數(shù)的時(shí)候,我們需要提前定義一個(gè)變量n,用來(lái)限制循環(huán)的次數(shù)

      這里我們定義了n=0,其實(shí)也可以n=1,但是后面要調(diào)整循環(huán)的放行條件,同學(xué)們完成練習(xí)的時(shí)候可以自己去試

      while n < 7:

      當(dāng)n滿足小于7的時(shí)候,進(jìn)入循環(huán)

      n = n 1,因?yàn)槲覀円獜?開(kāi)始打印,而n的初始值是0,所以先加1

      if n != 4:  # 當(dāng)num != 4,執(zhí)行打印語(yǔ)句;等于4時(shí)不打印。

              print(n)

      同理,判斷n的值是否為4

      必做練習(xí)講完了,我們繼續(xù)講講進(jìn)階練習(xí)

      那我繼續(xù)講階練習(xí)的講解啦

      進(jìn)階練習(xí)是一個(gè)換座位的題目,大家看到這個(gè)題目的時(shí)候,先不從程序的角度去想,會(huì)覺(jué)得應(yīng)該怎么去實(shí)現(xiàn)輪換位置這個(gè)效果呢?

      我們正常的輪換座位,就是要實(shí)現(xiàn)123,231,312這樣的輪換

      那回到代碼中,students = [‘小明’,’小紅’,’小剛’] 是一個(gè)列表,我們需要把第一個(gè)元素提取出來(lái),再重新寫入到這個(gè)列表最后

      student1 = students[0],我們把偏移量為0,也就是第一個(gè)元素取出,暫時(shí)賦值給一個(gè)變量

      然后,students = students[1:]

      把原有的列表進(jìn)行切片,只保留后兩個(gè)元素

      切片是第四關(guān)的知識(shí)哦,在這里就運(yùn)用到了

      最后,students.append(student1)

      我們?cè)侔裺tudent1重新寫入students這個(gè)列表里

      append()也是第四關(guān)的知識(shí)哦,只對(duì)列表才可以這么用

      最后,因?yàn)檫@個(gè)座位的輪換要重復(fù)三次,因?yàn)橛腥齻€(gè)同學(xué),所以我們需要把上面的操作重復(fù)三遍

      這時(shí)候就要用到:循環(huán)

      上面是for循環(huán)的用法

      下面是while循環(huán)的用法

      因?yàn)橛幸?guī)定循環(huán)次數(shù),所以同樣需要先定義一個(gè)變量,用來(lái)控制循環(huán)的次數(shù)

      其他都是一樣的

      第六關(guān)

      囚徒困境有普通版和升級(jí)版,但是代碼部分有重疊,那我就直接講升級(jí)版的吧

      首先看到這個(gè)題目,我們要想一下,這個(gè)囚徒困境,讓兩個(gè)人分別做兩種選擇,那么一共會(huì)出現(xiàn)4種情況

      兩個(gè)人都認(rèn)罪、兩個(gè)人都不認(rèn)罪、A認(rèn)B不認(rèn)、A不認(rèn)B認(rèn)

      對(duì)于這四個(gè)情況,我們大概有想法了,可以用四個(gè)條件語(yǔ)句去執(zhí)行不同的操作

      這一個(gè)我覺(jué)得應(yīng)該理解難度不大吧

      不過(guò)這要注意一個(gè)細(xì)節(jié)的東西

      在升級(jí)版的題目中,有以下要求

      所以在代碼中

      n 是用來(lái)記錄循環(huán)的次數(shù)的,在題目中,n 是用來(lái)統(tǒng)計(jì)一共多少對(duì)實(shí)驗(yàn)者(一次循環(huán)為一對(duì));

      list_answer=[] 是用來(lái)存放實(shí)驗(yàn)者選擇的一個(gè)空列表

      看回程序,n = 1用來(lái)記錄循環(huán)的次數(shù),也就是記錄了達(dá)到最優(yōu)解的時(shí)候,一共有多少對(duì)實(shí)驗(yàn)者

      每次A和B做了選擇后,將兩人的選擇以小列表的方式 [a,b],再寫入大列表中

      直到循環(huán)結(jié)束后,我們用 print(‘第’ str(n) ‘對(duì)實(shí)驗(yàn)者選了最優(yōu)解?!? 就可以打印出一共有多少對(duì)實(shí)驗(yàn)者了

      最后一部分,我們需要把每個(gè)實(shí)驗(yàn)者的選擇打印出來(lái)

      既然是重復(fù)性的一些操作,那我們又需要用到循環(huán)

      我們用 i 是用來(lái)遍歷n的,也就是遍歷每一對(duì)實(shí)驗(yàn)者;

      問(wèn)題:str(i 1) 是什么意思?

      i 遍歷的是時(shí)候是從0開(kāi)始的,要打印第幾對(duì)實(shí)驗(yàn)者時(shí),因?yàn)椴荒苷f(shuō)說(shuō)第0對(duì)實(shí)驗(yàn)者,所以就需要把 n 1,str()是轉(zhuǎn)換數(shù)據(jù)類型;

      問(wèn)題:list_answer[i] 是什么意思?

      list_answer是用來(lái)存放實(shí)驗(yàn)者選擇的一個(gè)列表,所以 list_answer[i] 就是通過(guò)偏移量將列表的元素取出來(lái)

      在最后一個(gè)練習(xí)中

      movies是一個(gè)字典,而字典的值是表格,用來(lái)存放演員的名字

      首先我們用 actor = input(‘你想查詢哪個(gè)演員?’),去輸入查詢的演員名字

      然后我們用 for  movie in movies:  # 用 for 遍歷字典,這里遍歷出來(lái)的movie,是字典的鍵,這個(gè)跟昨天學(xué)習(xí)循環(huán)的一個(gè)習(xí)題類似

      然后使用 actors = movies[movie]  # 讀取各個(gè)字典的主演表

      同樣,movies[movie]是取出字典的值的固定格式

      到這一步為止,我們就把字典的值,也就是存放演員的列表取出來(lái)了,我們可以通過(guò) print(actors)去看看

      由于actors是一個(gè)列表,那么我們要判斷前面輸入的actor,是否“在”列表里面呢

      所以我們用  if actor in actors:,可以理解為 如果 要查詢的actor 在 演員列表actors 里

      如果actor在,那么就匹配上了,我們就可以把print(actor ‘出演了電影’ movie),演員名字跟對(duì)應(yīng)的電影名字連接起來(lái),打印出來(lái)

      第六關(guān)的練習(xí)也講解完成了哦,要記得學(xué)習(xí)呀??

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多