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

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

初識Python

廖雪峰 移動開發工程師
難度入門
時長 5小時 0分
學習人數
綜合評分9.43
3762人評價 查看評價
9.7 內容實用
9.4 簡潔易懂
9.2 邏輯清晰
  • 一是先判斷一下 key 是否存在,用 in 操作符:

    if?'Paul'?in?d:
    ????print?d['Paul']

    如果 'Paul' 不存在,if語句判斷為False,自然不會執行 print d['Paul'] ,從而避免了錯誤。

    二是使用dict本身提供的一個 get 方法,在Key不存在的時候,返回None:

    >>>?print?d.get('Bart')
    59
    >>>?print?d.get('Paul')
    None


    查看全部
    0 采集 收起 來源:Python之訪問dict

    2020-08-01

  • \n 為轉義字符,表示換行 ,注意為左斜杠!

    http://img1.sycdn.imooc.com//5f2417d70001a00502900110.jpg

    查看全部
  • 第二次學習

    查看全部
  • 列表生成式的?for 循環后面還可以加上 if 判斷


    isinstance(x, str) 可以判斷變量 x 是否是字符串;

    字符串的 upper() 方法可以返回大寫的字母。


    查看全部
    0 采集 收起 來源:條件過濾

    2020-07-31

  • items()可以將dict的對象轉換成了包含tuple的list,我們對這個list進行迭代,可以同時獲得key和value:

    >>>?d?=?{?'Adam':?95,?'Lisa':?85,?'Bart':?59?}
    >>>?print?d.items()
    [('Lisa',?85),?('Adam',?95),?('Bart',?59)]

    和 values() 有一個 itervalues() 類似,?items()?也有一個對應的?iteritems(),iteritems() 不把dict轉換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不占用額外的內存。

    查看全部
  • dict 對象有一個?values() 方法,這個方法把dict轉換成一個包含所有value的list,這樣,我們迭代的就是 dict的每一個 value:

    d?=?{?'Adam':?95,?'Lisa':?85,?'Bart':?59?}
    print?d.values()
    #?[85,?95,?59]for?v?in?d.values():????print?v#?85#?95#?59

    如果仔細閱讀Python的文檔,還可以發現,dict除了values()方法外,還有一個?itervalues()?方法,用?itervalues()?方法替代?values()?方法,迭代效果完全一樣:

    d?=?{?'Adam':?95,?'Lisa':?85,?'Bart':?59?}
    print?d.itervalues()
    #?<dictionary-valueiterator?object?at?0x106adbb50>for?v?in?d.itervalues():
    ????print?v
    #?85
    #?95
    #?59

    那這兩個方法有何不同之處呢?

    1.?values()?方法實際上把一個 dict 轉換成了包含 value 的list。

    2. 但是?itervalues()?方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節省了生成 list 所需的內存。

    3.?打印 itervalues() 發現它返回一個 <dictionary-valueiterator> 對象,這說明在Python中,for 循環可作用的迭代對象遠不止 list,tuple,str,unicode,dict等,任何可迭代對象都可以作用于for循環,而內部如何迭代我們通常并不用關心。

    如果一個對象說自己可迭代,那我們就直接用 for 循環去迭代它,可見,迭代是一種抽象的數據操作,它不對迭代對象內部的數據有任何要求。


    查看全部
    0 采集 收起 來源:迭代dict的value

    2020-07-31

  • 迭代永遠是取出元素本身,而非元素的索引。

    想在 for 循環中拿到索引

    方法是使用?enumerate() 函數:

    >>>?L?=?['Adam',?'Lisa',?'Bart',?'Paul']
    >>>?for?index,?name?in?enumerate(L):...?????print?index,?'-',?name
    ...?
    0?-?Adam
    1?-?Lisa
    2?-?Bart
    3?-?Paul

    zip()函數可以把兩個 list 變成一個 list:

    >>>?zip([10,?20,?30],?['A',?'B',?'C'])
    [(10,?'A'),?(20,?'B'),?(30,?'C')]


    查看全部
    0 采集 收起 來源:索引迭代

    2020-07-31

  • 切片(Slice)操作符----‘:’寫法

    >>>?L[0:3]
    ['Adam',?'Lisa',?'Bart']

    L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3

    如果第一個索引是0,還可以省略

    只用一個?:?,表示從頭到尾.

    第3個參數:

    L[::2]

    表示每隔n個取一個,

    查看全部
    0 采集 收起 來源:對list進行切片

    2020-07-31

  • 十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

    查看全部
  • ①?()定義單元素的tuple有歧義,單元素 tuple 要多加一個逗號“,”例如:t=(1,)


    查看全部
  • L = ['Adam', 'Lisa', 'Bart']

    L[-1]='Adam'

    L[0]='Bart'

    print L

    #2

    L = ['Adam', 'Lisa', 'Bart']

    L[-1] ,L[0]=L[0],L[-1]

    print L

    #3

    L = ['Adam', 'Lisa', 'Bart']

    L.reverse()

    print L

    #4

    L = ['Adam', 'Lisa', 'Bart']

    L[::-1]

    print L


    查看全部
  • 反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。。 如 r"this is a line with \n" 則\n會顯示,并不是換行

    我想,學了的人都知道 r'.....' 可以讓里面的\不發生轉義,但細說是這樣的,加 ''r'' 的作用并不是讓它不轉義,而是在會改變原始內容的情況下,不發生轉義,但沒有改變原始內容的作用還是可以實現。

    例如?print r'12,\'12\'' 去掉 ''\'' 后,代碼就會執行失敗。可以說明 ''\'' 是產生了作用的,但它并沒有消失,而是以?

    12,\'12\'

    原始內容全部輸出。這就是為什么 ''\n''沒有任何作用的原因。


    查看全部
  • def?move(n,a,b,c):

    ????if?n?==1:

    ????????print?a,?'-->',?c

    ????????return

    ????move(n-1,?a,?c,?b)?

    ????print?a,?'-->',?c

    ????move(n-1,?b,?a,?c)



    move(5,?'A',?'B',?'C') #n改為5

    ????move(4,a,c,b)?#(得到a='A',?c='B',?b='C')?函數根據move(n,a,b,c)來計算所以move(4,a,b,c)=move(4,'A','C','B')

    ????????move(3,a,c,b)#(a='A',b='B',c='C')函數根據move(n,a,b,c)來計算所以move(3,a,b,c)=move(3,'A','B','C')

    ????????????move(2,a,c,b)#(得到a='A',?c='B',?b='C')?函數根據move(n,a,b,c)來計算所以move(2,a,b,c)=move(2,'A','C','B')

    ????????????????move(1,a,c,b)#(a='A',b='B',c='C')函數根據move(n,a,b,c)來計算所以move(1,a,b,c)=move(1,'A','B','C')

    ????????????????????print?a,'-->',c??#得到第1個順序為'A'-->'C'

    ????????????????print?a,'-->',c?#這是move(2,a,c,b)的第二步?得到第2個順序為'A'-->'B'

    ????????????????move(1,?b,?a,?c)?#由move(2,'A','C','B')推出move(1,b,a,c)的值為move(1,'A','C','B'),

    ????????????????????print?a,'-->',c?#得出第3個順序為'C'-->'B'

    ????????????print?a,'-->',c?#得出第4個順序為'A'-->'C'

    ????????????move(2,?b,?a,?c)?#b='A',a='B',c='C',move(2,a,b,c)?==?move(2,'B','A','C')

    ????????????????move(1,a,c,b)?#?a='B',b='C',c='A'

    ????????????????????print?a,'-->',c?#得出第5個順序為'B'-->'A'

    ????????????????print?a,'-->',c?#得出第6個順序為'B'-->'C'

    ????????????????move(1,?b,?a,?c)?#a='A',b='B',c='C'

    ????????????????????print?a,'-->',c?#得出第7個順序為'A'-->'C'

    ????????#.

    ????????#.

    ????????#.

    ????????#.

    ????????#.

    ????#以此類推

    ????????????????

    ????print?a,?'-->',?c

    ????move(4,b,a,c)

    ????????move(3,a,c,b)

    ????????????move(2,a,c,b)

    ????????????????move(1,a,c,b)

    ????????print?a,?'-->',?c


    查看全部
  • Pyhton 不適用于硬件、移動、游戲開發,代碼運行慢,但是代碼量小。

    查看全部
  • 不錯 通俗易懂。。

    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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