亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • ?

    有時候,一維list并不能滿足所有的要求(上述所有list均為一維list),這個時候需要二維list甚至更高維的list。

    ?

    在一個list里面,包含list,得到的就是一個二維list,對于二維list,列表里面的每一個元素仍然是一個列表。

    ?

    比如:

    Alice最近的三次成績分別是[100, 89, 92]

    ?Bob最近的三次成績分別是[70, 65, 81]

    ?Candy最近的三次成績分別是[88, 72, 77]

    如果需要用一個列表存放三個同學的成績,則需要這樣:

    ?

    ?

    alice_scores = [100, 89, 92]
    bob_scores = [70, 65, 81]
    candy_scores = [88, 72, 77]
    all_scores = [alice_scores, bob_scores, candy_scores]
    print(all_scores) # ==> [[100, 89, 92], [70, 65, 81], [88, 72, 77]]

    ?

    ?

    ?

    如果需要從二維list all_scores獲取Bob最近第三次考試的成績,可以這樣寫。

    其中

    ①all_scores[1]得到bob_scores :Bob的最近三次成績列表 [70,65,81];

    ②再通過下標[2]:則可以得到Bob第三次的成績81。

    ?

    ?

    alice_scores = [100,89,92]
    bob_scores = [70,65,81]
    candy_scores = [88,72,77]
    all_scores = [alice_scores, bob_scores, candy_scores]
    score = all_scores[1][2] # ==> 81

    ?

    ?

    ?

    任務

    有三個長方體,他們的長寬高分別是[1, 2, 3], [5, 3, 2], [7, 3, 2],定義在數組L中,L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]],請分別求出三個長方體的表面積。

    ?

    # coding: utf-8

    L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]

    n = 0

    for i in L:??? #for循環語句中,i可以是元素,也可以是list

    ??? n += 1

    ??? area = (i[0] * i[1] + i[0] * i[2] + i[1] * i[2]) * 2

    ??? print("第{}個長方體的表面積為{}".format(n,area))

    ?

    ?

    ?

    ?

    思路混亂——

    # Enter a code

    #coding=utf-8

    A = [0,0,0]

    surface=[0,0,0]

    L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]

    ?

    #A=L[1]

    #B=L[2]

    #C=L[3]

    ?

    i=0

    j=0

    ?

    ?

    for i in range(2):

    ??? for j in range(2):

    ??????? A[j]=L[i][j]

    ??? surface[i]=A[0]*A[1]*A[2]

    ??? print('長方體面積是{}'.format(surface[i]))

    ???

    ?

    ?

    ?

    ?

    ?

    查看全部
    0 采集 收起 來源:Python二維list

    2021-01-18

  • ?

    names=['Alice', 'Bob', 'Candy', 'David', 'Ellena']

    ?

    grade=[89, 72, 88, 79, 99]

    ?

    for i in range(4):

    ?

    ??? for j in range(i+1,5):

    ?

    ??????? if grade[j]>grade[i]:

    ?

    ??????????? a[i]=names[i],names[i]=names[j],names[j]=a[j]????? #python是直接交換,例如:i,j=j,i,再例如i,j,k=k,i,j

    ?

    ??????????? b[i]=grade[i],grade[i]=grade[j],grade[j]=b[j]

    ?

    print(names)

    ?

    ?

    ?

    ?

    ?

    任務

    班上某次考試,['Alice', 'Bob', 'Candy', 'David', 'Ellena'] 的成績分別是 89, 72, 88, 79, 99,請按照成績高低,重新排列list中同學名字的順序。

    ?

    names=['Alice', 'Bob', 'Candy', 'David', 'Ellena']

    ?

    grade=[89, 72, 88, 79, 99]

    ?

    for i in range(4):

    ?

    ??? for j in range(i+1,5):

    ?

    ??????? if grade[j]>grade[i]:

    ?

    ??????????? names[i],names[j]=names[j],names[i]

    ?

    ??????????? grade[i],grade[j]=grade[j],grade[i]

    ?

    print(names)

    ?

    ?

    ?

    ?

    ?

    ?

    查看全部
  • ?

    ① pop()方法:可以使用列表的pop()方法,默認刪除列表的最后一個元素,并返回值?!?gt;有返回值的函數,應該有接收返回值的語句,a=pop(()

    用法:listname.pop()

    ?

    L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
    name = L.pop()?? #pop函數有返回值,應該寫接收返回值的語句
    print(name) # ==> Ellena
    print(L) # ==> L = ['Alice', 'Bob', 'Candy', 'David']

    ?

    ?

    ② pop():還可以接收一個參數,指定需要刪除的元素的位置。

    用法:listname.pop(num), num是要刪除元素的位置(從左往右計數)

    ?

    L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']

    name = L.pop(1)

    print(name)

    print(L)

    ?

    ?

    ?

    注意:多個pop()語句使用時,pop()按照順序執行,前面的語句執行后,會即時改變listname列表,后面的語句在執行的是上一個語句執行后的新列表。

    ?

    ?

    任務

    L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena'],由于Candy,David依次轉學,某同學寫出以下代碼,請判斷以下代碼是否可以正常運行?如果不可以,為什么?請幫忙修正。

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    查看全部
  • Python中,list提供了一系列的方法可以讓我們操作list中的元素,其中也包含了添加元素的方法。

    ?

    ①append()方法:只能增加一個新元素,且增加位置是列表的末尾

    append語法:listname.append('xxx')

    ?

    names = ['Alice', 'Bob', 'David', 'Ellena']

    names.append('Candy')

    print(names)

    ?

    ?

    ?

    ②insert()方法:插入新元素,可以指定插入的位置(位置是從0開始數)

    ?

    insert()語法:listname.insert(num,'xxx'),需要兩個參數,分別是需要插入的位置num,以及需要插入的元素'xxx'。

    ?

    names = ['Alice', 'Bob', 'David', 'Ellena']
    names.insert(2, 'Candy')
    print(names) # ==> ['Alice', 'Bob', 'Candy', 'David', 'Ellena']

    ?

    ?

    ?

    ?

    任務

    班上已有同學['Alice', 'Bob', 'Candy', 'David', 'Ellena'],新來報到3名同學分別是'Zero', 'Phoebe', 'Gen',請綜合利用append()方法,insert()方法,把三個同學的名字按首字母順序插入到列表里去。

    ?

    names1=['Alice','Bob','Candy','David','Ellena']

    names2=['Gen','Phoebe','Zero']

    ?

    for item in names2:

    ??? names1.append(item)

    ?

    print(names1)

    ?

    ?

    ?

    Extend的用法:extend() 函數用于在列表末尾,一次性追加另一個序列中的多個值(用新列表擴展原來的列表)。

    ?

    ?

    ?

    查看全部
  • ?

    Python的列表,除了支持正向順序索引獲取列表中的每一個元素以外,也支持倒序訪問list中的每一個元素。

    ?

    ①倒序 [ - num ] 索引單個元素——在Python中,可以使用 -1 來表示最后一個元素,-2 表示倒數第二個元素,依次類推。

    ?


    注意:倒敘索引如果越界,也會報錯

    ?

    ?

    ②倒序 [ -big num : -small num ]切片索引——左開右閉,

    ?

    L=[95.5, 85, 59, 66, 72]

    L.sort(reverse=True)????? #

    M=L[-4:-1]???? ??#倒序索引,左開右閉,不包括 -4 位置的元素

    print(M)

    ?

    ?

    PS. 切片原則——無論是順序還是倒序,切片都是按從左到右算。差別在于順序是左閉右開,倒序是左開右閉。

    ?

    ?

    ?

    查看全部
  • ?

    ①[ num ] 索引訪問list單個元素:由于列表list是一個有序的容器,所以在list里面,每一個元素都有一個唯一的位置,我們稱之為索引(index),這和字符串是類似的,可以通過中括號 [ ] 來按位置訪問list對應的元素。

    ?

    注意,這里要注意區分,列表的定義也是通過中括號 [ ] 來定義的,但這和通過索引訪問列表里面的元素并不沖突

    ?

    names = ['Alice', 'Bob', 'David', 'Ellena']
    print(names[0])
    print(names[1])
    print(names[2])
    print(names[3])

    ?

    ?

    list index out of range索引訪問列表溢出——由于names只有四個元素,所以我們最多只能通過索引3訪問到最后一個元素。如果print(names[4]),會引起Python運行的錯誤。

    注意:在使用索引的方式訪問列表時,一定要特別注意不要越界。

    ?

    ?

    ?

    ?

    ②[ a:b ] 切片索引訪問list多個元素:左閉右開,和字符串切片類似

    ?

    names = ['Alice', 'Bob', 'David', 'Ellena']
    sub_names = names[0:2]
    print(sub_names)

    ?

    切片訪問溢出——

    如果我們越界切片的話,不會出現Python運行錯誤,但是按照這樣的下標去切片,獲取不到任何元素。

    ?

    ?

    ?

    任務

    五名同學的成績可以用一個list表示:L = [95.5, 85, 59, 66, 72],請按照索引的方式分別打印出第一名、第二名、第三名。

    ?

    L=[95.5, 85, 59, 66, 72]

    L.sort(reverse=True)??????? #sort是升序排序,reverse=True是降序排序

    M=L[0:3]????? #從0到2,不包括3位置的元素

    print(L)

    print(M)

    ?

    ?

    ?

    ?

    ?

    ?

    查看全部
  • ?

    列表是有序的,因此我們可以按順序訪問列表中的元素。

    ?

    L = ['Alice', 66, 'Bob', True, 'False', 100]
    for item in L:
    ??? print(item)

    ?

    ?

    使用for循環,訪問列表中的每一個元素——和使用for循環,訪問字符串中的每一個字符,是非常類似的。事實上字符串也可以看作是一種特殊的列表,它只能按順序存放多個字符。

    ?

    ?

    迭代——通過for循環訪問列表每一個元素的方式,我們稱為迭代。

    ?

    ?

    ?

    例題:請使用迭代的方式按順序輸出列表 L = ['Alice', 66, 'Bob', True, 'False', 100] 的偶數位置的元素。(列表中位置是從0開始)

    L = ['Alice', 66, 'Bob', True, 'False', 100]

    num=0

    for a in L:

    ? ??if num % 2==0:

    ??????? print(a)

    ??? num=num+1? #不管循環條件是否滿足,都會執行的語句

    ?

    L=['Alice',66,'Bob','True','False',100]

    n=0

    ?

    while n<6:

    ? ??if n%2==0:

    ??????? print(L[n])

    ??? n=n+1

    ?

    ?

    ?

    ?

    ?

    PS.? list中的元素是從0開始的

    ?

    ?

    ?

    ?

    查看全部
  • 生活中,容器指的是可以容納物品的收納器.

    ?

    容器定義——在程序中,容器是一種可以把多個元素放在一起的數據結構,容器中的元素可以逐個地迭代獲取,可以用in, not in等關鍵字判斷某個元素是否包含在容器中。

    ?

    容器種類——在Python中,包括列表(list)、元組(tuple)、字典(dict)、集合(set)等,他們都可以放入多個元素,因此都可以算作是容器,這些容器是Python編程中非常重要的數據結構,我們接下來重點學習這些數據結構。

    ?

    ?

    ?

    list

    ?

    列表(list)定義——是一種有序容器,放入list中的元素將會按照一定順序排列。構造list的方法非常簡單,使用中括號 [ ] 把需要放在容器里面的元素括起來,就定義了一個列表。

    ?

    list可以同時放入多種數據類型——list可以放入數字、字符串等數據類型,list不對放入其中的類型進行判斷,也就是說,list可以同時放入任意類型的數據,這是Python這門語言決定的,因為Python是動態語言。

    例如:L = ['Alice', 66, 'Bob', True, 'False', 100]

    ?

    ?

    For v in L:? ——> v可以是字符串,也可以是整型,都可以輸出

    ?

    ?

    ?

    ?

    ?

    ?

    查看全部
  • ?

    像多層if-else嵌套一樣,python的循環也支持嵌套。

    我們使用兩層嵌套循環輸出字符串'ABC'中每個字符和字符串'123'每個字符的排列。

    ?

    s1 = 'ABC'

    s2 = '123'

    for x in s1:

    ??? for y in s2:

    ??????? print(x+y)

    ?

    在上述代碼中,對于外層循環,外層每循環1次,內層就會循環3次。

    ?

    ?

    ?

    多層嵌套循環語法——

    If…:

    ??? abcd

    else:

    ????? ?if…:

    ??????? efgh

    ??? else:

    ?????? ghij

    ?

    ?

    for a in test1:

    ??? for b in test2:

    ??????? for c in test3:

    ??????????? print(a+b+c)

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    查看全部
  • 使用continue,我們可以控制循環繼續下去,并跳過continue后面的邏輯

    ?

    continue和if條件語句結合,continue放在if條件語句的執行語句最后一行,當在參數符合條件在if內循環時,continue控制繼續循環,不執行continue下面語句;當不符合條件、跳出循環時,執行continue下面語句。

    ?

    s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    num = 1

    for ch in s:

    ??? if num < 10:

    ??????? num = num + 1

    ??? ????continue

    ???

    ??? print(ch)

    ??? num = num + 1

    ?

    ?

    ?

    ?

    s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    num = 1

    for ch in s:

    ??? if num < 10:

    ??????? num = num + 1?

    ??? #? 缺少continue情況下,會輸出什么呢?

    ?

    ??? print('number is{},char is {}'.format(num,ch))

    ??? num = num + 1

    ?

    ?

    ?

    ?

    i=0

    sum=0

    while i<1001:

    ??? if i%2==0:

    ??????? sum=sum+i

    ??????? i=i+1

    ??? else:

    ??????? i=i+1

    ???

    print(sum)

    ?

    i=0

    sum=0

    while i<1001:

    ??? if i%2==0:

    ??????? sum=sum+i

    ??

    ??? i=i+1

    ???

    print(sum)

    ?

    ?

    num=0

    sum=0

    while num<1001:

    ?? ?if num%2=1:

    ??????? num=num+1

    ??????? continue

    ??? sum=sum+num

    ??? num=num+1

    ?

    print(sum)

    ?

    查看全部
  • While True——if跳出條件-break——循環語句:用 for 循環或者 while 循環時,如果要在循環體內直接退出循環,可以使用 break 語句。

    ?

    我們使用break跳出循環,也可以求出1~100的和。

    num = 1
    sum = 0
    while True:? #True循環
    ? ? if num > 100: #跳出條件
    ? ? ? ? break
    ? ? sum = sum + num? #循環語句
    ? ? num = num + 1? #循環語句,控制跳出條件
    print(sum)

    ?

    ?

    ?

    對于字符串s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',假如希望輸出s的前20個字符,而不是所有字符,我們也可以使用break。

    s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    num = 1

    for ch in s:

    ?? ?if num > 20:

    ??????? break

    ??? print(ch)

    ??? num = num + 1

    ?

    ?

    s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    num = 1

    while True:

    ?? ?if num > 20:

    ??????? break

    ??? ch=s[num-1]

    ??? print(ch)

    ??? num = num + 1

    ?

    ?

    ?

    查看全部
  • 注意——縮進問題:編寫python代碼時要格外注意縮進,對齊對應的邏輯

    ?

    #coding=utf-8

    num=1

    multiple=1

    ?

    while num<=10:

    ??? multiple=multiple*num

    ??? num=num+1

    ???

    print(multiple)

    ?

    查看全部
  • for循環在Python語言的流程控制中是非常重要的,在編程中有很多場景需要使用到for循環。舉個例子,當我們需要把字符串中的每一個字符打印出來的時候,我們怎么實現呢?

    ?

    for語法:for v in list,(來自 <http://www.xianlaiwan.cn/qadetail/349017> )

    ?

    ?

    s = 'ABCD'
    for ch in s:
    ? ? print(ch) ??# 注意縮進

    ?

    在上述代碼中,ch是在for循環中定義的,意思是把字符串s中的每一個元素依次賦值給ch,然后再把ch打印出來,直到打印出字符串s的最后一個字符為止。--------> for ch in s:

    ?

    ?

    ?

    ?

    班里考試后,老師要統計幾位同學的平均成績,已知5位同學的成績用list表示如下:

    L = [75, 92, 59, 68, 99]

    請利用for循環計算出平均成績。

    ?

    ?

    代碼如下:

    #coding=utf-8

    ?

    L=[75,92,59,68,99]

    sum=0?? # sum變量初始化???? #初始化不能放在循環內,要放在循環之前?!?gt;否則,得到的是 (0+99)/5=19.8

    ?????????????? #sum =0,定義為整數型——>在py2中,得到的ave也是整數型(取商)——>在py3中,得到的是浮點型(精確值)

    ?????????????? #sum =0.0,定義為浮點型——>在py2中,得到的ave也是浮點型

    ?

    for a in L:

    ??? sum=sum+a

    ???

    ave=sum/5

    print('平均成績是{}'.format(ave))

    ?

    ?

    PS. template.format()——如果想同時輸出 整數型和字符型、文字型等兩種以上數據類型,應該是采用template.format()調用函數

    ?

    ?

    注意——沒有條件for循環,只有for v in range(a:b)增強循環

    python是沒有條件for循環的,只有增強for循環

    for?s?in?range(1,100): s介于1-100之間時,循環,大于100跳出循環

    ?

    ?

    ?

    查看全部
    0 采集 收起 來源:Python之for循環

    2021-01-18

  • 可以使用if-elif-else語句來簡化邏輯,避免多個if-else語句嵌套。其中elif就是else if的意思。

    PS.

    嵌套過多,代碼將會縮進越來越多,代碼邏輯看起來也不夠清晰。

    ?

    特別注意: 無論是if-else還是if-elif-else語句,一系列條件判斷會從上到下依次判斷,如果某個判斷為 True,執行完對應的代碼塊,后面的條件判斷就直接忽略,不再執行了。

    ?

    age = 16

    if age >=18:

    ??? print('adult')

    elif age<3:

    ??? print('baby')

    elif age<=6:

    ??? print('kid')

    elif age<18:

    ??? print('teenager')

    ?

    ?

    注意:elif語句后要加冒號

    ?

    ?

    查看全部
  • ?

    通過條件判斷,選擇做什么樣的邏輯(當然,邏輯是需要我們提前寫好的),我們稱之為條件分支判斷

    ?

    #coding=utf-8

    age = 19

    if age>=18:

    ??? print('今年{}歲'.format(age))

    輸出結果:今年19歲

    ?

    ?

    year = '今年 {} 歲'

    age = 19

    if age >= 18:

    ? ? print(year.format(age))

    輸出結果:今年19歲

    ?

    ?

    ?

    ?

    注意—— #coding=utf-8:在python2版本中,若有中文,需要頭部寫入 #coding=utf-8?

    ?

    ?

    ?

    1,if條件后的選擇要縮進四格:可以看到print('今年{}歲') 這行代碼明顯比上一行代碼縮進了,這是因為這行代碼是if判斷的一個子分支,因此需要縮進,在Python規范中,一般使用4個空格作為縮進

    2.if條件后加冒號:在if語句的最后,有一個冒號: ,這是條件分支判斷的格式,在最后加入冒號:,表示接下來是分支代碼塊

    ?

    ?

    ?

    If-else分支判斷:

    在else中,同樣需要冒號;

    其次是縮進,在else的子邏輯分支,同樣需要縮進。

    查看全部
    0 采集 收起 來源:Python之if語句

    2021-01-18

舉報

0/150
提交
取消
課程須知
如果您了解程序設計的基本概念,會簡單使用命令行,了解中學數學函數的概念,那么對課程學習會有很大的幫助,讓您學起來得心應手,快速進入Python世界。
老師告訴你能學到什么?
通過本課程的學習,您將學會搭建基本的Python開發環境,以函數為基礎編寫完整的Python代碼,熟練掌握Python的基本數據類型以及list和dict的操作,靈活使用流程控制語句。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!