python初级进阶篇
python之路:進(jìn)階篇
| 一、作用域 |
在Python中,并不是任何代碼塊都能引入新的作用域,這與C有很大的不同:
#include<stdio.h>int?main()?{
????if(2?>?0)?{
????????int?i?=?0;
????}
????printf("i?=?%d",?i);
????return?0;
}
?在這段代碼中,if子句引入了一個(gè)局部作用域,變量i就存在于這個(gè)局部作用域中,但對(duì)外不可見(jiàn),因此,接下來(lái)在printf函數(shù)中對(duì)變量i的引用會(huì)引發(fā)編譯錯(cuò)誤。
if?True:????i?=?0
print?i
?在這段代碼中,if子句并沒(méi)有引入一個(gè)局部作用域,變量i仍然處在全局作用域中,因此,變量i對(duì)于接下來(lái)的print語(yǔ)句是可見(jiàn)的。
| 二、三元運(yùn)算 |
1??
>>>?1?if?False?else?0??
0??
>>>?"Fire"?if?True?else?"Water"??
'Fire'??
>>>?"Fire"?if?False?else?"Water"??
'Water'
?使用and-or技巧,利用條件判斷的優(yōu)先特性來(lái)實(shí)現(xiàn)三元條件判斷,比如P∧Q,在Python中如果P為假,那么Python將不會(huì)繼續(xù)執(zhí)行Q,而直接判定整個(gè)表達(dá)式為假(P值),當(dāng)然如果P為真,那就還要繼續(xù)執(zhí)行Q來(lái)決定整個(gè)表達(dá)式值;同樣的P∨Q,如果P為真,那么就不會(huì)繼續(xù)執(zhí)行Q了…
簡(jiǎn)化if判斷: name?=?'ales'#######################################################
if?1?==?1:
????name?'sb'
else:
????name?'2b'
可以寫(xiě)成:
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
| 三、進(jìn)制 |
| 四、python基礎(chǔ) |
help(類(lèi)型名) 查看類(lèi)中所有詳細(xì)的功能名 help(類(lèi)型名.功能名)查看類(lèi)中某功能的詳細(xì)
python的一切事物都是對(duì)象,對(duì)象基于類(lèi)創(chuàng)建
>>>?type(list)????????#查看對(duì)象屬于哪個(gè)類(lèi)<type?'type'>
##############################################################
>>>?dir(list)????????????#查看類(lèi)中有那些功能
['__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'
]
??#帶雙下劃線的叫內(nèi)置方法,可能有多種執(zhí)行方法,最少一種。不帶雙下劃線的叫非內(nèi)置
非內(nèi)置執(zhí)行方法list.append()
內(nèi)置方法執(zhí)行方式:
>>>?n1?=?-9>>>?abs(n1)
9
>>>?n1.__abs__()
9
>>>?help(list)???#查看類(lèi)中所有詳細(xì)的功能
>>>?help(list.append)????#查看類(lèi)中某功能的詳細(xì)信息
Help?on?method_descriptor:
append(...)
????L.append(object)?--?append?object?to?end
| Python列表函數(shù)&方法 |
| 1 | cmp(list1, list2) 比較兩個(gè)列表的元素 |
| 2 | len(list) 列表元素個(gè)數(shù) |
| 3 | max(list) 返回列表元素最大值 |
| 4 | min(list) 返回列表元素最小值 |
| 5 | list(seq) 將元組轉(zhuǎn)換為列表 |
| 1 | list.append(obj) 在列表末尾添加新的對(duì)象 |
| 2 | list.count(obj) 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) |
| 3 | list.extend(seq) 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表) |
| 4 | list.index(obj) 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置 |
| 5 | list.insert(index, obj) 將對(duì)象插入列表 |
| 6 | list.pop(obj=list[-1]) 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值 |
| 7 | list.remove(obj) 移除列表中某個(gè)值的第一個(gè)匹配項(xiàng) |
| 8 | list.reverse() 反向列表中元素 |
| 9 | list.sort([func]) 對(duì)原列表進(jìn)行排序 |
| Python支持四種不同的數(shù)值類(lèi)型: |
| 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 |
| python數(shù)字類(lèi)型轉(zhuǎn)換 |
| python數(shù)學(xué)函數(shù) |
| abs(x) | 返回?cái)?shù)字的絕對(duì)值,如abs(-10) 返回 10 |
| ceil(x) | 返回?cái)?shù)字的上入整數(shù),如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) | 返回?cái)?shù)字的絕對(duì)值,如math.fabs(-10) 返回10.0 |
| floor(x) | 返回?cái)?shù)字的下舍整數(shù),如math.floor(4.9)返回 4 |
| log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
| log10(x) | 返回以10為基數(shù)的x的對(duì)數(shù),如math.log10(100)返回 2.0 |
| max(x1, x2,...) | 返回給定參數(shù)的最大值,參數(shù)可以為序列。 |
| min(x1, x2,...) | 返回給定參數(shù)的最小值,參數(shù)可以為序列。 |
| modf(x) | 返回x的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號(hào)與x相同,整數(shù)部分以浮點(diǎn)型表示。 |
| pow(x, y) | x**y 運(yùn)算后的值。 |
| round(x [,n]) | 返回浮點(diǎn)數(shù)x的四舍五入值,如給出n值,則代表舍入到小數(shù)點(diǎn)后的位數(shù)。 |
| sqrt(x) | 返回?cái)?shù)字x的平方根,數(shù)字可以為負(fù)數(shù),返回類(lèi)型為實(shí)數(shù),如math.sqrt(4)返回 2+0j |
| Python隨機(jī)函數(shù) |
| choice(seq) | 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)。 |
| randrange ([start,] stop [,step]) | 從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為1 |
| random() | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)。 |
| seed([x]) | 改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會(huì)幫你選擇seed。 |
| shuffle(lst) | 將序列的所有元素隨機(jī)排序 |
| uniform(x, y) | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi)。 |
| Python三角函數(shù) |
| acos(x) | 返回x的反余弦弧度值。 | |
| asin(x) | 返回x的反正弦弧度值。 | |
| atan(x) | 返回x的反正切弧度值。 | |
| atan2(y, x) | 返回給定的 X 及 Y 坐標(biāo)值的反正切值。 | |
| cos(x) | 返回x的弧度的余弦值。 | |
| hypot(x, y) | 返回歐幾里德范數(shù) sqrt(x*x + y*y)。 | |
| sin(x) | 返回的x弧度的正弦值。 | |
| tan(x) | 返回x弧度的正切值。 | |
| degrees(x) | 將弧度轉(zhuǎn)換為角度,如degrees(math.pi/2) , 返回90.0 | |
| radians(x) | 將角度轉(zhuǎn)換為弧度 | |
| ?Python數(shù)學(xué)常量 |
| pi | 數(shù)學(xué)常量 pi(圓周率,一般以π來(lái)表示) |
| e | 數(shù)學(xué)常量 e,e即自然常數(shù)(自然常數(shù))。 |
| Python 字符串 |
| ???????? %c | ?格式化字符及其ASCII碼 |
| ??????%s | ?格式化字符串 |
| ??????%d | ?格式化整數(shù) |
| ??????%u | ?格式化無(wú)符號(hào)整型 |
| ??????%o | ?格式化無(wú)符號(hào)八進(jìn)制數(shù) |
| ??????%x | ?格式化無(wú)符號(hào)十六進(jìn)制數(shù) |
| ??????%X | ?格式化無(wú)符號(hào)十六進(jìn)制數(shù)(大寫(xiě)) |
| ????????? %f | ?格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度 |
| ???? ? ?? %e | ?用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| ???? ? ? %E | ?作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| ??????%g | ?%f和%e的簡(jiǎn)寫(xiě) |
| ???????? %G | ?%f 和 %E 的簡(jiǎn)寫(xiě) |
| ??????%p | ?用十六進(jìn)制數(shù)格式化變量的地址 |
| 元組元算符 |
| len((1, 2, 3)) | 3 | 計(jì)算元素個(gè)數(shù) |
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 連接 |
| ['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 復(fù)制 |
| 3 in (1, 2, 3) | True | 元素是否存在 |
| for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
| 元組索引、截取 |
| L[2] | 'Hello' | 讀取第三個(gè)元素 |
| L[-2] | 'Hello' | 反向讀取;讀取倒數(shù)第二個(gè)元素 |
| L[1:] | ('Hello', 'world') | 截取元素 |
| 元組內(nèi)置函數(shù) |
| 1 | cmp(tuple1, tuple2) 比較兩個(gè)元組元素。 |
| 2 | len(tuple) 計(jì)算元組元素個(gè)數(shù)。 |
| 3 | max(tuple) 返回元組中元素最大值。 |
| 4 | min(tuple) 返回元組中元素最小值。 |
| 5 | tuple(seq) 將列表轉(zhuǎn)換為元組。 |
| 字典內(nèi)置函數(shù)&方法 |
| 1 | cmp(dict1, dict2) 比較兩個(gè)字典元素。 |
| 2 | len(dict) 計(jì)算字典元素個(gè)數(shù),即鍵的總數(shù)。 |
| 3 | str(dict) 輸出字典可打印的字符串表示。 |
| 4 | type(variable) 返回輸入的變量類(lèi)型,如果變量是字典就返回字典類(lèi)型。 |
| 1 | radiansdict.clear() 刪除字典內(nèi)所有元素 |
| 2 | radiansdict.copy() 返回一個(gè)字典的淺復(fù)制 |
| 3 | radiansdict.fromkeys() 創(chuàng)建一個(gè)新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對(duì)應(yīng)的初始值 |
| 4 | radiansdict.get(key, default=None) 返回指定鍵的值,如果值不在字典中返回default值 |
| 5 | radiansdict.has_key(key) 如果鍵在字典dict里返回true,否則返回false |
| 6 | radiansdict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組 |
| 7 | radiansdict.keys() 以列表返回一個(gè)字典所有的鍵 |
| 8 | radiansdict.setdefault(key, default=None) 和get()類(lèi)似, 但如果鍵不已經(jīng)存在于字典中,將會(huì)添加鍵并將值設(shè)為default |
| 9 | radiansdict.update(dict2) 把字典dict2的鍵/值對(duì)更新到dict里 |
| 10 | radiansdict.values() 以列表返回字典中的所有值 |
總結(jié)
以上是生活随笔為你收集整理的python初级进阶篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 质数——python代码赏析
- 下一篇: 压缩可以卸载吗_番禺街坊注意!微信发送高