這篇文章主要介紹了六個面向詮釋Python的程式碼結構,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧
一、註解
使用#或三引號註解。
#二、連接
使用反斜線\ 連接。
>>> alphabet = 'abcdefg' + \ ... 'hijklmnop' + \ ... 'qrstuv' + \ ... 'wxyz'
在Python表達式佔行很多的前提下,行連接符也是必須的。
>>> 1 + 2 + \ ... 3 6
三、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.0 | |
'' | |
[] | |
() | |
{} |
四、使用while进行循环
使用if、elif和else条件判断的例子是自顶向下执行的,但是有时候我们需要重复一些操作——循环。
>>> count = 1 >>> while count <= 5: ... print(count) ... count += 1 ... 1 2 3 4 5
使用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]:test Test String to capitalize [type q to quit]:darren chen Darren chen String 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]:>? 1 1 squared is 1 Integer ,please [q to quit]:>? 2 Integer ,please [q to quit]:>? 3 3 squared is 9 Integer ,please [q to quit]:>? 5 5 squared is 25 Integer ,please [q to quit]:>? 6 Integer ,please [q to quit]:>? q
循环外使用else:
当while循环正常结束(没有使用break跳出),程序将进入到可选的else段 。
numbers = [1,3,5] position = 0 while position < len(numbers): number = numbers[position] if number % 2 == 0: print('Found even number',number) break position += 1 else: print('No even number found') ...No even number found
五、使用for迭代
表、字符串、元组、字典、集合等都是Python中可迭代的对象。元组或列表在一次迭代过程中产生一项,而字符串迭代会产生一个字符。
word = 'Darren Chen' for i in word: print(i) D a r r e n C h e n
对一个字典(或字典的key()函数)迭代将返回字典中的键
home = {"man":'chenda','woman':'lvpeipei'} for i in home: print(i) man woman
想对值迭代,可以使用字典的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 [ ]
以上是六個方面詮釋Python的程式碼結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!