這篇文章主要介紹了六個方面詮釋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 [ ]