日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python初级进阶篇

發布時間:2024/7/5 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python初级进阶篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python之路:進階篇

一、作用域
在Python 2.0及之前的版本中,Python只支持3種作用域,即局部作用域,全局作用域,內置作用域;在Python 2.2中,Python正式引入了一種新的作用域 --- 嵌套作用域;在Python 2.1中,嵌套作用域可以作為一個選項被開啟;嵌套作用域的引入,本質上為Python實現了對閉包的支持,關于閉包的知識,網上有很多解釋,這里就不詳細展開了。相應地,變量查找順序由之前的LGB變成LEGB(L:Local,E:Enclosing,G:Global,B:Built-in)。

在Python中,并不是任何代碼塊都能引入新的作用域,這與C有很大的不同:

#include<stdio.h>
int?main()?{
????if(2?>?0)?{
????????int?i?=?0;
????}
????printf("i?=?%d",?i);
????return?0;
}

?在這段代碼中,if子句引入了一個局部作用域,變量i就存在于這個局部作用域中,但對外不可見,因此,接下來在printf函數中對變量i的引用會引發編譯錯誤。

if?True:
????i?=?0
print?i

?在這段代碼中,if子句并沒有引入一個局部作用域,變量i仍然處在全局作用域中,因此,變量i對于接下來的print語句是可見的。

實際上,在Python中,只有模塊,類以及函數才會引入新的作用域,其它的代碼塊是不會引入新的作用域的。
? 在Python中,名字綁定在所屬作用域中引入新的變量,同時綁定到一個對象。名字綁定發生在以下幾種情況之下:
??? 1.參數聲明:參數聲明在函數的局部作用域中引入新的變量;
??? 2.賦值操作:對一個變量進行初次賦值會在當前作用域中引入新的變量,后續賦值操作則會重新綁定該變量;
??? 3.類和函數定義:類和函數定義將類名和函數名作為變量引入當前作用域,類體和函數體將形成另外一個作用域;
??? 4.import語句:import語句在當前作用域中引入新的變量,一般是在全局作用域;
??? 5.for語句:for語句在當前作用域中引入新的變量(循環變量);
??? 6.except語句:except語句在當前作用域中引入新的變量(異常對象)。
只要在內存里存在就可以使用

二、三元運算

Python對于類似C語言的三元條件表達式condition ? true_part : false_part,雖然Python沒有三目運算符(?:),但也有類似的替代方案,那就是true_part if condition else false_part。

>>>?1?if?True?else?0??
1??
>>>?1?if?False?else?0??
0??
>>>?"Fire"?if?True?else?"Water"??
'Fire'??
>>>?"Fire"?if?False?else?"Water"??
'Water'

?使用and-or技巧,利用條件判斷的優先特性來實現三元條件判斷,比如P∧Q,在Python中如果P為假,那么Python將不會繼續執行Q,而直接判定整個表達式為假(P值),當然如果P為真,那就還要繼續執行Q來決定整個表達式值;同樣的P∨Q,如果P為真,那么就不會繼續執行Q了…

簡化if判斷: name?=?'ales'
#######################################################
if?1?==?1:
????name?'sb'
else:
????name?'2b'
可以寫成:
name?=?"sb"?if?1?==?1?else?"2b"????
name?=?值1?if?條件?else?值2
#如果條件成立,輸出值1,否則輸出值2
>>>?name?=?'dog'
>>>?name?=?"boy"?if?1?==?1?else?"gol"
>>>?print?name
boy
三、進制
二進制,01 八進制,01234567 十進制,0123456789 ? ? 十六進制,0123456789ABCDE每種語言都有一個常用的進制,python常用的是十進制
四、python基礎
通過type可以查看對象類型,dir(類型名) 查看類中提供的所有功能
help(類型名) 查看類中所有詳細的功能名 help(類型名.功能名)查看類中某功能的詳細

python的一切事物都是對象,對象基于類創建

>>>?type(list)????????#查看對象屬于哪個類
<type?'type'>
##############################################################
>>>?dir(list)????????????#查看類中有那些功能
['__add__',?'__class__',?'__contains__',?'__delattr__',?'__delitem__',?'__delsli
ce__',?'__doc__',?'__eq__',?'__format__',?'__ge__',?'__getattribute__',?'__getit
em__',?'__getslice__',?'__gt__',?'__hash__',?'__iadd__',?'__imul__',?'__init__',
?'__iter__',?'__le__',?'__len__',?'__lt__',?'__mul__',?'__ne__',?'__new__',?'__r
educe__',?'__reduce_ex__',?'__repr__',?'__reversed__',?'__rmul__',?'__setattr__'
,?'__setitem__',?'__setslice__',?'__sizeof__',?'__str__',?'__subclasshook__',?'a
ppend',?'count',?'extend',?'index',?'insert',?'pop',?'remove',?'reverse',?'sort'
]

??#帶雙下劃線的叫內置方法,可能有多種執行方法,最少一種。不帶雙下劃線的叫非內置

非內置執行方法
list.append()

內置方法執行方式:

>>>?n1?=?-9
>>>?abs(n1)
9
>>>?n1.__abs__()
9
>>>?help(list)???#查看類中所有詳細的功能
>>>?help(list.append)????#查看類中某功能的詳細信息
Help?on?method_descriptor:
append(...)
????L.append(object)?--?append?object?to?end
Python列表函數&方法

python包含以下函數:

序號 函數
1 cmp(list1, list2)
比較兩個列表的元素
2 len(list)
列表元素個數
3 max(list)
返回列表元素最大值
4 min(list)
返回列表元素最小值
5 list(seq)
將元組轉換為列表

python包含以下方法:

序號 方法
1 list.append(obj)
在列表末尾添加新的對象
2 list.count(obj)
統計某個元素在列表中出現的次數
3 list.extend(seq)
在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
4 list.index(obj)
從列表中找出某個值第一個匹配項的索引位置
5 list.insert(index, obj)
將對象插入列表
6 list.pop(obj=list[-1])
移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
7 list.remove(obj)
移除列表中某個值的第一個匹配項
8 list.reverse()
反向列表中元素
9 list.sort([func])
對原列表進行排序
Python支持四種不同的數值類型:

整型(int)-通常被稱為是整型或整數,是正或負整數,不帶小數點。

長整型(long integers)~無限大小的整數,整數最后是一個大寫或小寫的L

浮點型(floating point real values)=浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102?= 250)

復數(complex numbers)- 復數的虛部以字母J或j結尾,如:2+3j

int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j

長整型也可以使用小寫“L”,但是還是建議您使用大寫“L”,避免與數字“1”混淆。python使用“L”來顯示長整型。

python還支持復數,復數由實數部分和虛數部分構成,可以用a + bj,或者comples(a, b)表示,復數的實部a和虛部b都是浮點型

python數字類型轉換
int(x?[,base?])?????????將x轉換為一個整數??long(x?[,base?])????????將x轉換為一個長整數??float(x?)???????????????將x轉換到一個浮點數 ? complex(real?[,imag?])??創建一個復數 ? str(x?)?????????????????將對象?x?轉換為字符串 ? repr(x?)????????????????將對象?x?轉換為表達式字符串??eval(str?)??????????????用來計算在字符串中的有效Python表達式,并返回一個對象 ? tuple(s?)???????????????將序列?s?轉換為一個元組 ? list(s?)????????????????將序列?s?轉換為一個列表 ? chr(x?)?????????????????將一個整數轉換為一個字符 ? unichr(x?)??????????????將一個整數轉換為Unicode字符 ? ord(x?)?????????????????將一個字符轉換為它的整數值 ? hex(x?)?????????????????將一個整數轉換為一個十六進制字符串 ? oct(x?)?????????????????將一個整數轉換為一個八進制字符串
python數學函數

函數 返回值 ( 描述 )
abs(x) 返回數字的絕對值,如abs(-10) 返回 10
ceil(x) 返回數字的上入整數,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回數字的絕對值,如math.fabs(-10) 返回10.0
floor(x) 返回數字的下舍整數,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10為基數的x的對數,如math.log10(100)返回 2.0
max(x1, x2,...) 返回給定參數的最大值,參數可以為序列。
min(x1, x2,...) 返回給定參數的最小值,參數可以為序列。
modf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x, y) x**y 運算后的值。
round(x [,n]) 返回浮點數x的四舍五入值,如給出n值,則代表舍入到小數點后的位數。
sqrt(x) 返回數字x的平方根,數字可以為負數,返回類型為實數,如math.sqrt(4)返回 2+0j

Python隨機函數

隨機數可以用于數學,游戲,安全等領域中,還經常被嵌入到算法中,用以提高算法效率,并提高程序的安全性,

python包含以下常用隨機數函數:

函數 描述
choice(seq) 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。
randrange ([start,] stop [,step]) 從指定范圍內,按指定基數遞增的集合中獲取一個隨機數,基數缺省值為1
random() 隨機生成下一個實數,它在[0,1)范圍內。
seed([x]) 改變隨機數生成器的種子seed。如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed。
shuffle(lst) 將序列的所有元素隨機排序
uniform(x, y) 隨機生成下一個實數,它在[x,y]范圍內。
Python三角函數

python包括以下三角函數:

函數 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回給定的 X 及 Y 坐標值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回歐幾里德范數 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 將弧度轉換為角度,如degrees(math.pi/2) , 返回90.0
radians(x) 將角度轉換為弧度
?Python數學常量

常量 描述
pi 數學常量 pi(圓周率,一般以π來表示)
e 數學常量 e,e即自然常數(自然常數)。

Python 字符串

?符?? 號 描述
???????? %c ?格式化字符及其ASCII碼
??????%s ?格式化字符串
??????%d ?格式化整數
??????%u ?格式化無符號整型
??????%o ?格式化無符號八進制數
??????%x ?格式化無符號十六進制數
??????%X ?格式化無符號十六進制數(大寫)
????????? %f ?格式化浮點數字,可指定小數點后的精度
???? ? ?? %e ?用科學計數法格式化浮點數
???? ? ? %E ?作用同%e,用科學計數法格式化浮點數
??????%g ?%f和%e的簡寫
???????? %G ?%f 和 %E 的簡寫
??????%p ?用十六進制數格式化變量的地址
元組元算符

與字符串一樣,元組之間可以使用 + 號和 * 號進行運算,這就意味著他們可以組合和賦值,運算后生成一個新的元組。

Python 表達式 結果 描述
len((1, 2, 3)) 3 計算元素個數
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 連接
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 復制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

元組的元素不能修改,元組的元素的元素可以修改

元組索引、截取

Python 表達式 結果 描述
L[2] 'Hello' 讀取第三個元素
L[-2] 'Hello' 反向讀取;讀取倒數第二個元素
L[1:] ('Hello', 'world') 截取元素
元組內置函數

python元組包含了以下內置函數

序號 方法及描述
1 cmp(tuple1, tuple2)
比較兩個元組元素。
2 len(tuple)
計算元組元素個數。
3 max(tuple)
返回元組中元素最大值。
4 min(tuple)
返回元組中元素最小值。
5 tuple(seq)
將列表轉換為元組。
字典內置函數&方法

python字典包含了以下內置函數:

序號 函數及描述
1 cmp(dict1, dict2)
比較兩個字典元素。
2 len(dict)
計算字典元素個數,即鍵的總數。
3 str(dict)
輸出字典可打印的字符串表示。
4 type(variable)
返回輸入的變量類型,如果變量是字典就返回字典類型。

python字典包含了以下內置函數:

序號 函數及描述
1 radiansdict.clear()
刪除字典內所有元素
2 radiansdict.copy()
返回一個字典的淺復制
3 radiansdict.fromkeys()
創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
4 radiansdict.get(key, default=None)
返回指定鍵的值,如果值不在字典中返回default值
5 radiansdict.has_key(key)
如果鍵在字典dict里返回true,否則返回false
6 radiansdict.items()
以列表返回可遍歷的(鍵, 值) 元組數組
7 radiansdict.keys()
以列表返回一個字典所有的鍵
8 radiansdict.setdefault(key, default=None)
和get()類似, 但如果鍵不已經存在于字典中,將會添加鍵并將值設為default
9 radiansdict.update(dict2)
把字典dict2的鍵/值對更新到dict里
10 radiansdict.values()
以列表返回字典中的所有值

總結

以上是生活随笔為你收集整理的python初级进阶篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。