笨方法學python習題37 複習各種符號)

2021-08-08 09:03:00 字數 4086 閱讀 6342

習題37

一些不清楚的關鍵字

del:用於list列表操作,刪除乙個或者連續幾個元素

del a[1]   \del a[2:4]\   del a#刪除整個list

from:匯入相應的模組,就是一些函式和類的集合檔案,類似與c語言裡的include

from ***x

import:匯入模組裡的某個功能        

#  import sys

from sys import *一般是匯入特定成員

as 還不是特別清楚,通常用在對內建型別的賦值操作。

上下文管理

with open(file)asf:

f.read()

import語句

import somebigmodulenameassbmn

sbmn.method()

還有乙個exception

global:為乙個定義在函式外的變數賦值,告訴python這個變數名是全域性的。函式內賦的值也反映在主塊中

global x,y,z

with:一種與異常處理相關的功能.適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的「清理」操作,釋放資源,比如檔案使用後自動關閉、執行緒中鎖的自動獲取和釋放等。有了上下文管理器,with 語句才能工作(包含enter、exit方法)。

with open(r'somefilename') as somefile:

for line in somefile:

print line不需手動關閉

assert:是一種插入除錯斷點到程式的一種便捷的方式,宣告某個條件為真,若不為真,引發assertionerror

assert expression1、expression2

pass:   空語句,為了保持程式結構的完整性,一般用做佔位語句

編寫乙個程式時,部分思路還沒有完成,但又不能不寫,先用pass替代占個位置

yield:把乙個函式變成乙個 generator(生成器)呼叫函式時不會執行 fab 函式,而是返回乙個 iterable迭代物件

執行流程仍按函式的流程執行,但每執行到乙個 yield 語句就會中斷,並返回乙個迭代值,下次執行時從 yield 的下乙個語句繼續執行

,看起來就好像乙個函式在正常執行的過程中被 yield 中斷了數次,每次中斷都會通過 yield 返回當前的迭代值。

break:滿足某個條件時,終止迴圈語句。

*except:所有異常從基類exception繼承,在內建模組中定義

執行語句如果引發異常,會跳到第乙個except語句,若匹配,執行except中的語句。如果不匹配,向下搜尋其他的except

,若全都不匹配,異常傳遞到下乙個呼叫**的最高層**中???未發生異常,執行else語句

處理異常

try:

***x

except(exception,語句)

else:

***x

多個except句子需要注意子類放前,父類放後

引發異常,在異常類的名稱後新增乙個逗號以及指定的引數(或者由引數構成的乙個元組)。

try:

raise exception

except exception

***x

class:類,把具有相同屬性和方法的物件可以歸為一類,定義出的具體作為物件例項。擁有屬性(類本身的特性)和功方法(類所能實現的行為)

class ***(***x):#可繼承父類,擁有其相應的屬性和方法

def _init_(self):#建構函式,初始化各物件的屬性,預設self這個引數代表類定義的物件本身,並放在第一位

pass

def _del_(self)#析構函式,在程式退出時呼叫的,刪除成員資料

pass

exec:動態執行**片段的語法宣告

exex expr  in g,l#exec後面的**在global和local變數作用域

exec (expr,globals,locals)與上等效

execfile()

eval: 內建函式,計算儲存在字串中的有效python表示式,並返回表示式的值

in:判斷乙個數是否在乙個序列裡面,返回布林值

raise:引發異常,執行時建立指定異常類的乙個物件。還可以指定對異常物件進行初始化的引數,需在名稱後新增逗號以及指定引數

raise [expression[,expression]]

continue:告訴python跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈.刪除滿足迴圈條件下的某些不需要的成分

if *** :

pass

continue

pass

*finally:無論是否發生異常都要確保資源釋放**的執行

try:

pass

finally 

return

is:判斷2個變數是否引用的是同乙個物件

a=***

b=***

print(a is b)

return 從乙個函式跳出,也可返回乙個值,預設return(none)

lambada:建立匿名簡單函式,是乙個表示式。而def是乙個語句

m=lambada x,y,z:(x-y)*z#冒號後只能有乙個表示式

print m(a,b,c)

*try:處理異常,和前邊exec有重疊。

資料型別

none:通常表示空或是沒有值。是乙個特殊的值。判斷時為false。null是python特殊型別,物件只有乙個值none。

字串轉義序列:有些功能符號不能直接輸出

\\:反斜槓,換行符,一條語句寫在多行

\a:響鈴,執行的時候電腦發出聲音,神奇!!!

\b:退格

\f:換頁

\r:回車

\t:水平製表符

\v:垂直製表符

若要忽略轉義,在字串前加r

字串格式化:[標誌][輸出最小寬度][.精度][長度]型別

%d:整數型

%u:無符號整數型,嘗試的時候出現了這個問題

%i:輸入整數、帶前導0的八進位制數或0x的十六進製制數

%o:八進位制無符號整數

%x(x):十六進製制大小寫無符號整數

%f(f):浮點數字,小數形式

%e(e):科學記數法,指數形式,大小寫只是標識,無實際區別

%g(g):浮點數字,以%e%f中較短的輸出寬度輸出單、雙精度實數

%c:轉換成字元,ascii碼值

%r:用repr()進行字串轉換

%p:指標的值

操作符號:

**冪運算

//地板除,結果是刪除小數點後得到的商數,若值為負,結果保留向負無窮大捨去

%模運算,返回餘數

<>:搜到是檢查兩個運算元值是否相等,若不相等,為true。等價於!=。但是在python中搜的時候顯示無效語法

():代表tuple元組資料型別,不可變序列,逗號隔開

:代表list列表資料型別,可變的序列,逗號隔開

{}:代表dict字典資料型別,逗號隔開組 

dic=

@:函式修飾符,在函式定義的前一行。直譯器讀到會先解析@後的內容,

直接就把@下一行的函式或者類作為@後邊的函式的引數,然後將返回值賦值給下一行修飾的函式物件。

從第乙個函式修飾符開始,自下而上做引數傳遞,這樣實際是使用了約定的函式修飾符達到函式巢狀的目的。

@funa

@funb

def func():

print 'func'

結果是:return funa(funb(func))

;python中換行能夠識別語句的結束,如果要在一行中書寫多條句子,就使用分號隔開

笨方法學python 習題37

習題37 複習各種符號 keywords and 與邏輯 del 用於list列表操作,刪除乙個或者連續幾個元素 from 匯入相應的模組 not 非邏輯 while while迴圈 as 作為 elif 並且開始 global 宣告全域性變數 為乙個定義在函式外的變數賦值,告訴python這個變數...

笨方法學Python 習題0

第一天學習,教材是中文第四版,完全零基礎 之前電腦上安裝了anaconda 所以現在是這個狀態,不知道python 3在之後的學習有沒有什麼問題,先這樣再說吧 ctrl z撤銷,回到python之前 windows裡terminal 就是指powershell 建立目錄 mkdir 進入目錄 cd ...

笨方法學python 習題4 5 6 7 8

習題4 space in a car中 car是假想空格字元 附加題 我的3的版本裡只用4沒有問題,我的猜想是2中如果除數都是int,答案會是去掉小數剩下的部分 比如說如果最後答案是3.75,python會顯示3,而實際上我們應該得出4這個答案,就不匹配了。是assignment,equal to ...