六個方面詮釋Python的代碼結構

來源:互聯網
上載者:User
這篇文章主要介紹了六個方面詮釋Python的代碼結構,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、注釋

使用#或三引號注釋。


二、串連

使用反斜線 \ 串連。

>>> alphabet = 'abcdefg' + \ ...                         'hijklmnop' + \ ...                         'qrstuv' + \ ...                         'wxyz'

在Python運算式占行很多的前提下,行串連符也是必須的。

>>> 1 + 2 + \... 36


三、if、elif和else

常見的運算子:

算數運算子:

比較子:

賦值運算子:

邏輯運算子:

成員運算子:

身份運算子 :

位元運算符:

*按位取反運算規則(按位取反再加1) 詳解http://blog.csdn.net/wenxinwukui234/article/details/42119265

運算子優先順序:

input()輸入的是字串;

字串和整數型之間的轉換————int() str()

短路原則:

and 第一個為假時就不去判斷後面的了,直接為false;

or 第一個為真就不去判斷第二個了,直接為true。

會被認為是False的情況:

布爾

False

null類型

None

整型

0

浮點型

0.0

Null 字元串

''

空列表

[]

空元組

()

空字典

{}

空集合

set()



四、使用while進行迴圈

使用if、elif和else條件判斷的例子是自頂向下執行的,但是有時候我們需要重複一些操作——迴圈。

>>> count = 1>>> while count <= 5:...     print(count)...     count += 1...12345

使用break跳出迴圈

>>> while True:...     stuff = input("String to capitalize [type q to quit]:")...     if stuff == 'q':...             break...     print(stuff.capitalize())...String to capitalize [type q to quit]:testTestString to capitalize [type q to quit]:darren chenDarren chenString to capitalize [type q to quit]:q

使用continue調到迴圈開始

while True:    value = input('Integer ,please [q to quit]:')    if value == 'q':        break    number = int(value)    if number % 2 == 0:        continue    print(number,'squared is',number*number)    Integer ,please [q to quit]:>? 11 squared is 1Integer ,please [q to quit]:>? 2Integer ,please [q to quit]:>? 33 squared is 9Integer ,please [q to quit]:>? 55 squared is 25Integer ,please [q to quit]:>? 6Integer ,please [q to quit]:>? q

迴圈外使用else:

當while迴圈正常結束(沒有使用break跳出),程式將進入到可選的else段 。

numbers = [1,3,5]position = 0while position < len(numbers):    number = numbers[position]    if number % 2 == 0:        print('Found even number',number)        break    position += 1else:    print('No even number found')...No even number found



五、使用for迭代

表、字串、元組、字典、集合等都是Python中可迭代的對象。元組或列表在一次迭代過程中產生一項,而字串迭代會產生一個字元。

word = 'Darren Chen'for i in word:    print(i)    DarrenChen

對一個字典(或字典的key()函數)迭代將返回字典中的鍵

home = {"man":'chenda','woman':'lvpeipei'}for i in home:    print(i)    manwoman

想對值迭代,可以使用字典的values()

>>> for value in accusation. values(): ...         print( value) ...     ballroom lead pipe

同while一樣,可以使用break跳出迴圈,使用continue調到迴圈開始。

迴圈外使用else:

>>> cheeses = [] >>> for cheese in cheeses: ...             print(' This shop has some lovely', cheese) ...             break ...      else: # 沒有 break 表示 沒有 找到 乳酪 ...              print(' This is not much of a cheese shop, is it?') ... This is not much of a cheese shop, is it?

使用zip()對多個序列進行並行迭代:

>>> days = ['Monday', 'Tuesday', 'Wednesday'] >>> fruits = ['banana', 'orange', 'peach'] >>> drinks = ['coffee', 'tea', 'beer'] >>> desserts = ['tiramisu', 'ice cream', 'pie', 'pudding'] >>> for day, fruit, drink, dessert in zip( days, fruits, drinks, desserts): ...         print( day, ": drink", drink, "- eat", fruit, "- enjoy", dessert) ... Monday : drink coffee - eat banana - enjoy tiramisu Tuesday : drink tea - eat orange - enjoy ice cream Wednesday : drink beer - eat peach - enjoy pie

使用zip()函數配對兩個元組。函數的傳回值既不是元組也不是列表,而是一個整合在一起的可迭代變數:

>>> english = 'Monday', 'Tuesday', 'Wednesday' >>> french = 'Lundi', 'Mardi', 'Mercredi'>>> list( zip( english, french) ) [('Monday', 'Lundi'), ('Tuesday', 'Mardi'), ('Wednesday', 'Mercredi')]#配合dict()函數和zip()函數的傳回值就可以得到一本微型的詞典:>>> dict( zip( english, french) ) {'Monday': 'Lundi', 'Tuesday': 'Mardi', 'Wednesday': 'Mercredi'}

使用range()產生自然數序列

>>> for x in range( 0, 3): ...         print( x) ... 0 1 2>>> list( range( 0, 11, 2) ) [0, 2, 4, 6, 8, 10]


六、推導式

推導式是從一個或者多個迭代器快速簡介地建立資料結構的一種方法。

列表推導式

>>> number_ list = list( range( 1, 6)) >>> number_ list [1, 2, 3, 4, 5]>>> number_ list = [number for number in range( 1, 6)] >>> number_ list [1, 2, 3, 4, 5]>>> number_ list = [number- 1 for number in range( 1, 6)] >>> number_ list [0, 1, 2, 3, 4]>>> a_ list = [number for number in range( 1, 6) if number % 2 == 1] >>> a_ list[1,3,5]#嵌套迴圈>>> rows = range( 1, 4) >>> cols = range( 1, 3) >>> cells = [(row, col) for row in rows for col in cols] >>> for cell in cells: ...         print( cell) ... (1, 1) (1, 2) (2, 1) (2, 2) (3, 1) (3, 2)

字典推導式

{ key_ expression : value_ expression for expression in iterable }>>> word = 'letters' >>> letter_ counts = {letter: word. count( letter) for letter in set( word)} >>> letter_ counts {'t': 2, 'l': 1, 'e': 2, 'r': 1, 's': 1}

集合推導式

>>> a_ set = {number for number in range( 1, 6) if number % 3 == 1} >>> a_ set {1, 4}

產生器推導式——元組是沒有推導式的,其實,圓括弧之間的是產生器推導式,它返回的是一個產生器對象。

>>> number_ thing = (number for number in range( 1, 6))>>> type( number_ thing) < class 'generotor'>#可以直接對產生器對象進行迭代>>> for number in number_ thing: ...             print( number) ... 1 2 3 4 5

#通過對一個產生器的推導式調用list()函數,使它類似於列表推導式

>>> number_ list = list( number_ thing) >>> number_ list [1, 2, 3, 4, 5]    一個產生器只能運行一

次。列表、集合、字串和字典都儲存在記憶體中,但是產生器僅在運行中產生值,不會被存下來,所以不能重新使用或者備份一個產生器。

如果想再一次迭代此產生器,會發現它被擦除了:

>>> try_ again = list( number_ thing) >>> try_ again [ ]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.