![Python入門(mén)基礎(chǔ)語(yǔ)法合集_第1頁(yè)](http://file4.renrendoc.com/view12/M08/3A/28/wKhkGWYkgMGAdcLlAAEccS7JJew714.jpg)
![Python入門(mén)基礎(chǔ)語(yǔ)法合集_第2頁(yè)](http://file4.renrendoc.com/view12/M08/3A/28/wKhkGWYkgMGAdcLlAAEccS7JJew7142.jpg)
![Python入門(mén)基礎(chǔ)語(yǔ)法合集_第3頁(yè)](http://file4.renrendoc.com/view12/M08/3A/28/wKhkGWYkgMGAdcLlAAEccS7JJew7143.jpg)
![Python入門(mén)基礎(chǔ)語(yǔ)法合集_第4頁(yè)](http://file4.renrendoc.com/view12/M08/3A/28/wKhkGWYkgMGAdcLlAAEccS7JJew7144.jpg)
![Python入門(mén)基礎(chǔ)語(yǔ)法合集_第5頁(yè)](http://file4.renrendoc.com/view12/M08/3A/28/wKhkGWYkgMGAdcLlAAEccS7JJew7145.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
了解python
1.了解Python
Python是一種解釋型(這意味著開(kāi)發(fā)過(guò)程中沒(méi)有了編譯這個(gè)環(huán)節(jié)X面向?qū)ο螅ㄖС置嫦驅(qū)?/p>
象的風(fēng)格或代碼封裝在對(duì)象的編程技術(shù))、動(dòng)態(tài)數(shù)據(jù)類(lèi)型的交互式(可在命令行中通過(guò)
Python提示符及直接代碼執(zhí)行程序)高級(jí)程序設(shè)計(jì)語(yǔ)言。
2.Python標(biāo)識(shí)符
標(biāo)識(shí)符由字母、數(shù)字、下劃線組成,但不能以數(shù)字開(kāi)頭,且區(qū)分大小寫(xiě)。
以下劃線開(kāi)頭的標(biāo)識(shí)符是有特殊意義的。以單下劃線開(kāi)頭一f。。的代表不能直接訪問(wèn)的類(lèi)屬
性,需通過(guò)類(lèi)提供的接口進(jìn)行訪問(wèn),不能用fromxxximport*而導(dǎo)入;
以雙下劃線開(kāi)頭的_f。。代表類(lèi)的私有成員;以雙下劃線開(kāi)頭和結(jié)尾的_foo_代表
Python里特殊方法專(zhuān)用的標(biāo)識(shí),如_init_()代表類(lèi)的構(gòu)造函數(shù)。
Python可以同一行顯示多條語(yǔ)句,方法是用分號(hào);分開(kāi)。
3.Python中的保留字符
這些保留字不能用作常數(shù)或變數(shù),或任何其他標(biāo)識(shí)符名稱。所有Python的關(guān)鍵字只包含小
寫(xiě)字母。
and
exec
not
assert
finally
or
break
for
pass
class
from
continue
global
raise
def
if
return
del
import
try
elif
in
while
else
is
with
except
lambda
yield
4.Python的縮進(jìn)與多行語(yǔ)句寫(xiě)法
4.1Python中的縮進(jìn)要求非常嚴(yán)格,必須嚴(yán)格對(duì)齊。因?yàn)镻ython的代碼塊不由{}控制,而
是由縮進(jìn)就可以控制。
4.2使用斜杠(\)將一行的語(yǔ)句分為多行顯示,如下所示:當(dāng)然,使用各類(lèi)括號(hào)括起語(yǔ)句
之后不需要斜杠換行。
total=item_one+\
item_two+\
item_three
英文三個(gè)雙引號(hào)用在等式中也可以寫(xiě)多行文本,直接使用和三個(gè)單引號(hào)作用一樣,可以做
多行注釋。
5.Python中的不換行與換行輸出
#換行輸出
print(x)
#不換行輸出
print(x,end=")
Python變量類(lèi)型
創(chuàng)建變量就意味著會(huì)在內(nèi)存中開(kāi)辟空間,同時(shí)變量必須賦值才會(huì)被創(chuàng)建。
1.Python中的變量賦值
單變量賦值:
counter=100#賦值整型變量
miles=1000.0#浮點(diǎn)型
name="John"#字符串
多變量賦值:
a=b=c=1#三個(gè)變量的值都為1
a,b,c=1,2,"john"#分別為三個(gè)變量賦值
2.Python中的數(shù)據(jù)類(lèi)型
Python有五個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型:
1.Numbers(數(shù)字)
1)不可改變的數(shù)據(jù)類(lèi)型:
當(dāng)其類(lèi)型被改變時(shí),將會(huì)賦值給一個(gè)新的對(duì)象。當(dāng)對(duì)變量賦予了數(shù)值后,這個(gè)對(duì)象就會(huì)被創(chuàng)
建,可通過(guò)del語(yǔ)句刪除對(duì)這些對(duì)象的引用。
2)Python支持的數(shù)字類(lèi)型:
int(有符號(hào)整型,如0x69,10);long(長(zhǎng)整型[也可以代表八進(jìn)制和十六進(jìn)制],如
-4721885298529L,Python用數(shù)字后面的L表示長(zhǎng)整型);float(浮點(diǎn)型,如70.2E-12);
complex(復(fù)數(shù),如4.53e-7j卜
3)Python數(shù)據(jù)類(lèi)型轉(zhuǎn)換:
int(x[.base])將x轉(zhuǎn)換為一^1k整數(shù)
long(x[.base])將x轉(zhuǎn)換為一個(gè)長(zhǎng)整數(shù)
float(x)將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
complex(real[,imag])創(chuàng)建一個(gè)復(fù)數(shù)
str(x)將對(duì)象x轉(zhuǎn)換為字符串
repr(x)將對(duì)象x轉(zhuǎn)換為表達(dá)式字符串
eval(str)用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
tuple(s)將序列s轉(zhuǎn)換為一個(gè)元組
list(s)將序列s轉(zhuǎn)換為一個(gè)列表
chr(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
unichr(x)將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
ord(x)將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
hex(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
4)Python數(shù)學(xué)函數(shù)
函數(shù)
返回值(描述)
abs(x)
返回?cái)?shù)字的絕對(duì)值,如abs(-10)返回10
ceil(x)
返回?cái)?shù)字的向上取整值,如math.ceil(4.1)返回5
cmp(x,y)
比較函數(shù),如果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(-IO)返回10.0
floor(x)
返回向下取整值,如math.floor(4.9)返回4
log(x)
如math.log(math.e)返回1.0,math」og(100,10)返回2.0
Iog10(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的平方根
5)Python隨機(jī)數(shù)函數(shù)
常用于游戲、數(shù)學(xué)、安全等領(lǐng)域。
函數(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ù)生成器的種子seedo如果你不了解其原理,你不必特別去設(shè)定seed,Python
會(huì)幫你選擇seedo
shuffle(lst)
將序列的所有元素隨機(jī)排序
uniform(x,y)
隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi)。
6)Python三角函數(shù)
函數(shù)
描述
acos(x)
返回x的反余弦弧度值。
asin(x)
返回x的反正弦弧度值。
atan(x)
返回x的反正切弧度值。
atan2(y,x)
返回給定的X及丫坐標(biāo)值的反正切值。
cos(x)
返回X的弧度的余弦值。
hypot(x,y)
返回歐幾里德范數(shù)sqrt(x*x+y*y)o
sin(x)
返回的x弧度的正弦值。
tan(x)
返回X弧度的正切值。
degrees(x)
將弧度轉(zhuǎn)換為角度,如degrees(math.pi/2),返回90.0
radians(x)
將角度轉(zhuǎn)換為弧度
7)Python數(shù)學(xué)常量
常量
描述
pi
數(shù)學(xué)常量pi(圓周率,一般以IT來(lái)表示)
e
數(shù)學(xué)常量e,e即自然常數(shù)(自然常數(shù)卜
2.String(字符串)
由數(shù)字、字母、下劃線組成。
1)字符串截取
Python字符串從左至右截?。核饕秶?,長(zhǎng)度-1),從右至左截?。?1,字符串開(kāi)頭卜
2)Python中不存在單字符
Python中即使有單字符,也會(huì)被當(dāng)作字符串處理。
3)Python轉(zhuǎn)義字符
轉(zhuǎn)義字符
描述
出現(xiàn)在行尾時(shí)表現(xiàn)為續(xù)行符,出現(xiàn)在行中時(shí),用于“翻譯”特殊字符表示特殊含義,如下面選
項(xiàng)所示
反斜杠符號(hào)
V
單引號(hào)
雙引號(hào)
\a
響鈴
\b
退格(Backspace)
\e
轉(zhuǎn)義
\000
空
\n
換行
\v
縱向制表符
\t
橫向制表符
回車(chē)
\f
換頁(yè)
\oyy
八進(jìn)制數(shù),yy代表的字符,例如:\o12代表?yè)Q行
\xyy
十六進(jìn)制數(shù),yy代表的字符,例如:\xOa代表?yè)Q行
\other
其它的字符以普通格式輸出
4)Python字符串運(yùn)算
下表實(shí)例變量a值為字符串"Hello",b變量值為"Python":
操作符
描述
+
字符串連接。
重復(fù)輸出字符串。
[]
通過(guò)索引獲取字符串中字符
[:]
截取字符串中的一部分
in
成員運(yùn)算符-如果字符串中包含給定的字符返回True
notin
成員運(yùn)算符-如果字符串中不包含給定的字符返回True
r/R
原始字符串-原始字符串:所有的字符串都是直接按照字面的意思來(lái)使用,沒(méi)有轉(zhuǎn)義特殊
或不能打印的字符。原始字符串除在字符串的第一個(gè)引號(hào)前加上字母"r"(可以大小寫(xiě))以
外,與普通字符串有著幾乎完全相同的語(yǔ)法。
a='hello'
b='world'
print(a+b)#helloworld,+號(hào)連接字符串
print(a*2)#hellohello「號(hào)重復(fù)字符串
print(a[1])#e,口索引字符
print(a[1:4])#ell,[:]截取字符串
printf'h"ina)#True,in是否包含
print("M"notina)#True,notin是否不包含
print(r'\n')#\n,r原始字符串(不解析轉(zhuǎn)義字符)
5)Python字符串格式化(方便print時(shí)定義類(lèi)型,如C語(yǔ)言中printf字符串時(shí)在弓I號(hào)
內(nèi)寫(xiě)%s一樣)
print("Mynameis%sandweightis%dkg!"%('Zara',21))
輸出:
MynameisZaraandweightis21kg!
符號(hào)
描述
%c
格式化字符及其ASCII碼
%s
格式化字符串
%d
格式化整數(shù)
%u
格式化無(wú)符號(hào)整型
%0
格式化無(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ù)格式化變量的地址
6)使用三引號(hào)輸出一大串帶特殊字符的字符串
當(dāng)使用三引號(hào)將字符串框起來(lái)時(shí),就不需要再通過(guò)轉(zhuǎn)義字符打很多換行符等符號(hào)了,可以直
接打換行。對(duì)比如下:
?>hi='"hi
there"'
?>hi='hi\nthere'
這兩種輸出的結(jié)果都是換行的字符串,但是使用單引號(hào)時(shí),當(dāng)轉(zhuǎn)義字符很多時(shí),會(huì)很痛苦。
9)String可使用的內(nèi)建函數(shù)
方法
描述
string.capitalize()
把字符串的第一個(gè)字符大寫(xiě)
string.center(width)
返回一個(gè)原字符串居中,并使用空格填充至長(zhǎng)度width的新字符串
string.count(str,beg=O,end=len(string))
返回str在string里面出現(xiàn)的次數(shù),如果beg或者end指定則返回指定范圍內(nèi)str出現(xiàn)
的次數(shù)
string.decode(encoding=,UTF-8,,errors='strict,)
以encoding指定的編碼格式解碼string,如果出錯(cuò)默認(rèn)報(bào)一個(gè)ValueError的異常,
除非errors指定的是'ignore'或者'replace'
string.encode(encoding=,UTF-8',errors='strict')
以encoding指定的編碼格式編碼string,如果出錯(cuò)默認(rèn)報(bào)一個(gè)ValueError的異常,除非
errors指定的是'ignore'或者'replace'
string.endswith(obj,beg=O,end=len(string))
檢查字符串是否以obj結(jié)束,如果beg或者end指定則檢查指定的范圍內(nèi)是否以obj結(jié)
束,如果是,返回True,否則返回False.
string.expandtabs(tabsize=8)
把字符串string中的tab符號(hào)轉(zhuǎn)為空格,tab符號(hào)默認(rèn)的空格數(shù)是8。
string.find(str,beg=0,end=len(string))
檢測(cè)str是否包含在string中,如果beg和end指定范圍,則檢查是否包含在指定范圍
內(nèi),如果是返回開(kāi)始的索引值,否則返回-1
string.format()
格式化字符串
string.index(str,beg=0,end=len(string))
跟find()方法一樣,只不過(guò)如果str不在string中會(huì)報(bào)一個(gè)異常.
string.isalnum()
如果string至少有一個(gè)字符并且所有字符都是字母或數(shù)字則返
回True,否則返回False
string.isalpha()
如果string至少有一個(gè)字符并且所有字符都是字母則返回True,
否則返回False
string.isdecimal()
如果string只包含十進(jìn)制數(shù)字則返回True否則返回False.
string.isdigit()
如果string只包含數(shù)字則返回True否則返回False.
string.islower()
如果string中包含至少一個(gè)區(qū)分大小寫(xiě)的字符,并且所有這些(區(qū)分大小寫(xiě)的)字符都是小
寫(xiě),則返回True,否則返回False
string.isnumeric()
如果string中只包含數(shù)字字符,則返回True,否則返回False
string.isspace()
如果string中只包含空格,則返回True,否則返回False.
string.istitle()
如果string是標(biāo)題化的(見(jiàn)Mtle())則返回True,否則返回False
string.isupper()
如果string中包含至少一個(gè)區(qū)分大小寫(xiě)的字符,并且所有這些(區(qū)分大小寫(xiě)的)字符都是大
寫(xiě),則返回True,否則返回False
string.join(seq)
以string作為分隔符,將seq中所有的元素(的字符串表示)合并為一個(gè)新的字符串
string.Ijust(width)
返回一個(gè)原字符串左對(duì)齊,并使用空格填充至長(zhǎng)度width的新字符串
string.Iower()
轉(zhuǎn)換string中所有大寫(xiě)字符為小寫(xiě).
string.Istrip()
截掉string左邊的空格
string.maketrans(intab,outtab])
maketrans()方法用于創(chuàng)建字符映射的轉(zhuǎn)換表,對(duì)于接受兩個(gè)參數(shù)的最簡(jiǎn)單的調(diào)用方式,第
一個(gè)參數(shù)是字符串,表示需要轉(zhuǎn)換的字符,第二個(gè)參數(shù)也是字符串表示轉(zhuǎn)換的目標(biāo)。
max(str)
返回字符串str中最大的字母。
min(str)
返回字符串str中最小的字母。
string.partition(str)
有點(diǎn)像find。和spht()的結(jié)合體,從str出現(xiàn)的第一個(gè)位置起,把字符串string分成一
個(gè)3元素的元組(string_pre_str,str,string_post_str),如果string中不包含str則
string_pre_str==string.
string.replace(str1,str2,num=string.count(str1))
把string中的str1替換成str2,如果num指定,則替換不超過(guò)num次.
string.rfind(str,beg=O,end=len(string))
類(lèi)似于find()函數(shù),不過(guò)是從右邊開(kāi)始查找.
string.rindex(str,beg=O,end=len(string))
類(lèi)似于index(),不過(guò)是從右邊開(kāi)始.
string.rjust(width)
返回一個(gè)原字符串右對(duì)齊,并使用空格填充至長(zhǎng)度width的新字符串
string.rpartition(str)
類(lèi)似于part田on()函數(shù),不過(guò)是從右邊開(kāi)始查找.
string.rstrip()
刪除string字符串末尾的空格.
string.split(str="n,num=string.count(str))
以str為分隔符切片string,如果num有指定值,則僅分隔num個(gè)子字符串
string.splitlines([keepends])
按照行(WJ\r\M\n)分隔,返回一個(gè)包含各行作為元素的列表,如果參數(shù)keepends為
False,不包含換行符,如果為T(mén)rue,則保留換行符。
string.startswith(obj,beg=O,end=len(string))
檢查字符串是否是以obj開(kāi)頭,是則返回True,否則返回False。如果beg和end指定
值,則在指定范圍內(nèi)檢查.
string.strip([obj])
在string上執(zhí)行l(wèi)strip()和rstrip()
string.swapcase()
翻轉(zhuǎn)string中的大小寫(xiě)
string.title()
返回"標(biāo)題化”的string,就是說(shuō)所有單詞都是以大寫(xiě)開(kāi)始,其余字母均為小寫(xiě)(見(jiàn)istitle())
string.translate(str,del="")
根據(jù)str給出的表(包含256個(gè)字符)轉(zhuǎn)換string的字符,
要過(guò)濾掉的字符放到del參數(shù)中
string.upper()
轉(zhuǎn)換string中的小寫(xiě)字母為大寫(xiě)
string.zfill(width)
返回長(zhǎng)度為width的字符串,原字符串string右對(duì)齊,前面填充0
string.isdecimal()
isdecimal()方法檢查字符串是否只包含十進(jìn)制字符。這種方法只存在于unicode對(duì)象。
3.List(列表)
使用非常頻繁,支持?jǐn)?shù)字、字符、字符串甚至列表的集合結(jié)構(gòu)。
1)增加或刪除列表元素
直接重新賦值給根據(jù)索引值取出的值,或通過(guò)append()函數(shù)來(lái)添加。
通過(guò)del語(yǔ)句刪除列表項(xiàng),如:dellist1[2]
2)列表的腳本操作符
和對(duì)字符串的操作類(lèi)似。
Python表達(dá)式
結(jié)果
描述
len([1,2,3])
3
長(zhǎng)度
[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
組合
['Hi!']*4
rHR'HFJHi!丁Hi!】
重復(fù)
3in[1,2,3]
True
判斷元素是否存在于列表中
forxin[1,2,3]:printx,
123
迭代
3)列表的截取
Python表達(dá)式
結(jié)果
描述
L[2]
'Taobao'
讀取列表中第三個(gè)元素
L[-2]
'Runoob'
讀取列表中倒數(shù)第二個(gè)元素
L[1:]
['Runoob','Taobao']
從第二個(gè)元素開(kāi)始截取列表
4)Python中列表的函數(shù)及方法
Python包含以下函數(shù):
函數(shù)
描述
cmp(list1,Iist2)
比較兩個(gè)列表的元素
len(list)
列表元素個(gè)數(shù)
max(list)
返回列表元素最大值
min(list)
返回列表元素最小值
list(seq)
將元組轉(zhuǎn)換為列表
Python包含以下方法:
函數(shù)
描述
list.append(obj)
在列表末尾添加新的對(duì)象
list.count(obj)
統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
list.extend(seq)
在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)
list.index(obj)
從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置
Iist.insert(index,obj)
將對(duì)象插入列表
list.pop(obj=list[-1])
移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
list.remove(obj)
移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)
list.reverse()
反向列表中元素
list.sort([func])
對(duì)原列表進(jìn)行排序
4.Tuple(元組)
1)與列表的區(qū)別
類(lèi)似列表,但列表用口標(biāo)識(shí),元組用()標(biāo)識(shí),并且列表元素可二次賦值,但元組元素不能。
2)元組的創(chuàng)建
創(chuàng)建空元組:tuple()o
創(chuàng)建只有一個(gè)元素的元組:tuple(a,),必須要在元素后加逗號(hào)。
3)元素的訪問(wèn)
雖然創(chuàng)建時(shí)用()包含,但是在訪問(wèn)單個(gè)元素時(shí),與列表一樣,通過(guò)[索引號(hào)]來(lái)訪問(wèn)。
4)刪除元組
元組中的單個(gè)元素不能被刪除,但是元組可以通過(guò)del語(yǔ)句整個(gè)刪除。
5)元組運(yùn)算符(同列表)
6)任意無(wú)符號(hào)的對(duì)象,以逗號(hào)隔開(kāi),默認(rèn)為元組(無(wú)關(guān)閉分隔符)
7)元組內(nèi)置函數(shù)
函數(shù)
描述
cmp(tuple1,tuple2)
比較兩個(gè)元組元素。
len(tuple)
計(jì)算元組元素個(gè)數(shù)。
max(tuple)
返回元組中元素最大值。
min(tuple)
返回元組中元素最小值。
tuple(seq)
將列表轉(zhuǎn)換為元組。
5.Dictionary(字典)
1)與列表的差別
列表是有序的對(duì)象集合,字典是無(wú)序的對(duì)象結(jié)合。字典中的元素通過(guò)Key來(lái)獲取,而列表
中的元素通過(guò)位移來(lái)獲取。
2)字典的定義
下面是兩種定義字典的方法,兩種方法都與列表的定義方法類(lèi)似。
diet={}
diett'one1]="Thisisone',
dict[2]-'Thisistwo"
tinydict={,name':,john,,,code':6734,'dept':,sales,}
3)數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
函數(shù)
描述
int(x[,base])
將x轉(zhuǎn)換為一個(gè)整數(shù)
long(x[.base])
將X轉(zhuǎn)換為一個(gè)長(zhǎng)整數(shù)
float(x)
將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
complex(real[,imag])
創(chuàng)建一個(gè)復(fù)數(shù)
str(x)
將對(duì)象x轉(zhuǎn)換為字符串
repr(x)
將對(duì)象x轉(zhuǎn)換為表達(dá)式字符串
eval(str)
用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
tuple(s)
將序列s轉(zhuǎn)換為一個(gè)元組
list(s)
將序列s轉(zhuǎn)換為一個(gè)列表
set(s)
轉(zhuǎn)換為可變集合
dict(d)
創(chuàng)建一個(gè)字典。d必須是一個(gè)序列(key,value沅組。
frozenset(s)
轉(zhuǎn)換為不可變集合
chr(x)
將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
unichr(x)
將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
ord(x)
將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
hex(x)
將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x)
將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
Python運(yùn)算符
Python支持以下八種運(yùn)算符:
1.算數(shù)運(yùn)算符
假設(shè)a=10,b=20
運(yùn)算符
描述
實(shí)例
加-兩個(gè)對(duì)象相加
a+b輸出結(jié)果30
減-得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)
a-b輸出結(jié)果-10
乘-兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串
a*b輸出結(jié)果200
除-x除以y
b/a輸出結(jié)果2(整數(shù)除整數(shù),只能得整數(shù),要求小數(shù)需要將其中一個(gè)改為浮點(diǎn)數(shù))
%
取模-返回除法的余數(shù)
b%a輸出結(jié)果0
事-返回x的y次幕
a**b為10的20次方,輸出結(jié)果100000000000000000000
II
取整除-返回商的整數(shù)部分
9112輸出結(jié)果4,9.0//2.0輸出結(jié)果4.0
2.比較運(yùn)算符
運(yùn)算符
描述
實(shí)例
等于-比較對(duì)象是否相等
(a==b)返回Falseo
不等于-比較兩個(gè)對(duì)象是否不相等
(a!=b)返回true.
<>
不等于-比較兩個(gè)對(duì)象是否不相等
(a<>b)返回true。這個(gè)運(yùn)算符類(lèi)似!=。
大于-返回x是否大于v
(a>b)返回Falseo
小于-返回x是否小于yo所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊
的變量True和False等價(jià)。注意,這些變量名的大寫(xiě)。
(a<b)返回trueo
大于等于-返回x是否大于等于y。
(a>=b)返回Falseo
<=
小于等于-返回x是否小于等于yo
(a<=b)返回true。
3.Python賦值運(yùn)算符
運(yùn)算符
描述
實(shí)例
簡(jiǎn)單的賦值運(yùn)算符
c=a+b將a+b的運(yùn)算結(jié)果賦值為c
+=
加法賦值運(yùn)算符
c+=a等效于c=c+a
減法賦值運(yùn)算符
c-=a等效于c=c-a
乘法賦值運(yùn)算符
c*=a等效于c=c*a
/=
除法賦值運(yùn)算符
c/=a等效于c=c/a
%=
取模賦值運(yùn)算符
c%=a等效于c=c%a
幕賦值運(yùn)算符
c**=a等效于c=c**a
11=
取整除賦值運(yùn)算符
c11=a等效于c=c//a
4.Python位運(yùn)算符
按位運(yùn)算符是把數(shù)字看作二進(jìn)制來(lái)進(jìn)行計(jì)算的。Python中的按位運(yùn)算法則如下:
運(yùn)算符
描述
實(shí)例
&
按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位都為1,則該位的結(jié)果為1,否則為0
(a&b)輸出結(jié)果12,二進(jìn)制解釋?zhuān)?0001100
按位或運(yùn)算符:只要對(duì)應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1o
(a|b)輸出結(jié)果61,二進(jìn)制解釋?zhuān)?0111101
按位異或運(yùn)算符:當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1
(aAb)輸出結(jié)果49,二進(jìn)制解釋?zhuān)?0110001
按位取反運(yùn)算符:對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?。?x類(lèi)似于-x-1
(~a)輸出結(jié)果-61,二進(jìn)制解釋?zhuān)?1000011,在一個(gè)有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼形式。
?
左移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由"<<"右邊的數(shù)指定移動(dòng)的位數(shù),高位
丟棄,低位補(bǔ)0o
a<<2輸出結(jié)果240,二進(jìn)制解釋?zhuān)?1110000
?
右移動(dòng)運(yùn)算符:把">>"左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,">>"右邊的數(shù)指定移動(dòng)的
位數(shù)
a>>2輸出結(jié)果15,二進(jìn)制解釋?zhuān)?0001111
5.Python邏輯運(yùn)算符
運(yùn)算符
邏輯表達(dá)式
描述
實(shí)例
and
xandy
布爾"與"-如果x為False,xandy返回False,否則它返回y的計(jì)算值。
(aandb)返回20。
or
xory
布爾”或”.如果x是非0,它返回x的值,否則它返回y的計(jì)算值。
(aorb)返回10o
not
notx
布爾“非”?如果x為T(mén)rue,返回False。如果x為False,它返回True。
not(aandb)返回False
6.Python成員運(yùn)算符
運(yùn)算符
描述
實(shí)例
in
如果在指定的序列中找到值返回True,否則返回Falseo
x在y序列中,如果x在y序列中返回True0
notin
如果在指定的序列中沒(méi)有找到值返回True,否則返回Falseo
x不在y序列中,如果x不在v序列中返回True。
7.Python身份運(yùn)算符(判斷引用的對(duì)象)
1)is與==的區(qū)別
==判斷兩者是否完全相等,而is判斷兩個(gè)對(duì)象引用的對(duì)象是否是同一個(gè)。
運(yùn)算符
描述
實(shí)例
is
is是判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象
xisy,類(lèi)似id(x)==id(y),如果引用的是同一個(gè)對(duì)象則返回True,否則返回False
isnot
isnot是判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象
xisnoty,類(lèi)似id(a)!=id(b)o如果引用的不是同一個(gè)對(duì)象則返回結(jié)果True,否則返回
Falseo
8.Python運(yùn)算符優(yōu)先級(jí)
運(yùn)算符
描述
指數(shù)(最高優(yōu)先級(jí))
~+■
按位翻轉(zhuǎn),一元加號(hào)和減號(hào)(最后兩個(gè)的方法名為+@和-@)
*/%//
乘,除,取模和取整除
加法減法
??
右移,左移運(yùn)算符
&
位'AND'
位運(yùn)算符
比較運(yùn)算符
<>==!=
等于運(yùn)算符
=%=/=11=-=+=*
賦值運(yùn)算符
isisnot
身份運(yùn)算符
innotin
成員運(yùn)算符
notorand
邏輯運(yùn)算符
Python語(yǔ)句
1.條件語(yǔ)句
Python不支持switch語(yǔ)句,因此判斷結(jié)果對(duì)應(yīng)多種執(zhí)行方式時(shí),只能用elif來(lái)做。
num=5
ifnum==3:#判斷num的值
print('boss')
elifnum==2:
print('user')
elifnum==1:
print('worker')
2.循環(huán)語(yǔ)句
Python中沒(méi)有dowhile循環(huán)。
循環(huán)類(lèi)型
描述
while循環(huán)
在給定的判斷條件為true時(shí)執(zhí)行循環(huán)體,否則退出循環(huán)體。
for循環(huán)
重復(fù)執(zhí)行語(yǔ)句
嵌套循環(huán)
你可以在while循環(huán)體中嵌套for循環(huán)(for中也可以嵌套for吧)
循環(huán)控制語(yǔ)句:
控制語(yǔ)句
描述
break語(yǔ)句
在語(yǔ)句塊執(zhí)行過(guò)程中終止循環(huán),并且跳出整個(gè)循環(huán)
continue語(yǔ)句
在語(yǔ)句塊執(zhí)行過(guò)程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)。
pass語(yǔ)句
pass是空語(yǔ)句,是為了保持程序結(jié)構(gòu)的完整性。
1)pass語(yǔ)句在函數(shù)中的作用
當(dāng)你在編寫(xiě)一個(gè)程序時(shí),執(zhí)行語(yǔ)句部分思路還沒(méi)有完成,這時(shí)你可以用pass語(yǔ)句來(lái)占位,
也可以當(dāng)做是一個(gè)標(biāo)記,是要過(guò)后來(lái)完成的代碼。比如下面這樣:
defiplaypython():
pass
定義一個(gè)函數(shù)iplaypython,但函數(shù)體部分暫時(shí)還沒(méi)有完成,又不能空著不寫(xiě)內(nèi)容,因此可
以用pass來(lái)替代占個(gè)位置。
2)pass語(yǔ)句在循環(huán)中的作用
pass也常用于為復(fù)合語(yǔ)句編寫(xiě)一個(gè)空的主體,比如說(shuō)你想一個(gè)while語(yǔ)句的無(wú)限循環(huán),每
次迭代時(shí)不需要任何操作,你可以這樣寫(xiě):
whileTrue:
pass
以上只是舉個(gè)例子,現(xiàn)實(shí)中最好不要寫(xiě)這樣的代碼,因?yàn)閳?zhí)行代碼塊為pass也就是空什么
也不做,這時(shí)python會(huì)進(jìn)入死循環(huán)。
3)pass語(yǔ)句用法總結(jié)
1、空語(yǔ)句,什么也不做
2、在特別的時(shí)候用來(lái)保證格式或是語(yǔ)義的完整性
4)While循環(huán)(可在循環(huán)中使用else語(yǔ)句)
#continue和break用法
i=1
whilei<10:
i+=1
ifi%2>0:#非雙數(shù)時(shí)跳過(guò)輸出
continue
print(i)#輸出雙數(shù)2、4、6、8、10
i=1
while1:#循環(huán)條件為1必定成立
print(i)#輸出1?10
i+=1
ifi>10:#當(dāng)1大于10時(shí)跳出循環(huán)
break
在循環(huán)中使用else語(yǔ)句,即當(dāng)條件不滿足之后,結(jié)束循環(huán),執(zhí)行else語(yǔ)句
count=0
whilecount<5:
print(count,“islessthan5")
count=count+1
else:
print(count,nisnotlessthan5")
5)for循環(huán)(可在循環(huán)中使用else語(yǔ)句)
可以通過(guò)直接取值迭代,也可以通過(guò)序列索引迭代
取值迭代:
forletterin'Python*:#逐個(gè)輸出字符串中的字符
print('當(dāng)前字母letter)
fruits=['banana','apple','mango']
forfruitinfruits:#逐個(gè)輸出列表中的元素
print(,當(dāng)前水果fruit)
print("Goodbye!")
索引迭代:
fruits=['banana','apple','mango']
#通過(guò)len()函數(shù)獲得列表的長(zhǎng)度,通過(guò)range()函數(shù)獲得了一個(gè)值不超過(guò)長(zhǎng)度的索
引序列
forindexinrange(len(fruits)):
print('當(dāng)前水果:',fruits[index])
print("Goodbye!'*)
Python日期和時(shí)間
Python是以時(shí)間戳來(lái)記錄時(shí)間的,也就是當(dāng)前時(shí)間距離1970年1月1日過(guò)去了多少秒,
因此獲取時(shí)間的方法一般是先獲取時(shí)間戳,再將時(shí)間戳轉(zhuǎn)換為時(shí)間元組,再將時(shí)間元組轉(zhuǎn)換
為不同格式的時(shí)間數(shù)據(jù)。
1.獲取時(shí)間戳
importtime;#引入time模塊
ticks=time.time()
2.獲取時(shí)間
什么是時(shí)間元組?
很多Python函數(shù)用一個(gè)元組裝起來(lái)的9組數(shù)字處理時(shí)間,也就是struct_time元組:
屬性
字段
值
tm_year
4位數(shù)年
2008
tm_mon
月
1至JI12
tm_mday
日
1到31
tm_hour
小時(shí)
0到23
tm_min
分鐘
0到59
tm_sec
秒
0到61(60或61是閏秒)
tm_wday
一周的第幾日
0到6(0是周一)
tm_yday
一年的第幾日
1到366(儒略歷)
tmjsdst
夏令時(shí)
-1,0,1,-1是決定是否為夏令時(shí)的旗幟
代碼接上,將獲取的時(shí)間戳轉(zhuǎn)換為時(shí)間元組:
localtime=time.localtime(time.time())
print("本地時(shí)間為:",localtime)
3.獲取格式化的時(shí)間
localtime=time.asctime(time.localtime(time.time()))
print("本地時(shí)間為:",localtime)
4.獲取更多格式的格式化時(shí)間
time.strftime(format[,t])#總的代碼形式
#格式化成2016-03-2011:45:39形式
print(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))
python中時(shí)間日期格式化符號(hào):
-%y兩位數(shù)的年份表示(00-99)
?%丫四位數(shù)的年份表示(000-9999)
?%m月份(01-12)
%d月內(nèi)中的一天(0-31)
%H24小時(shí)制小時(shí)數(shù)(0-23)
%l%小時(shí)制小時(shí)數(shù)(01-12)
%M分鐘數(shù)(00=59)
%S秒(00-59)
%a本地簡(jiǎn)化星期名稱
%A本地完整星期名稱
%b本地簡(jiǎn)化的月份名稱
%B本地完整的月份名稱
%c本地相應(yīng)的日期表示和時(shí)間表示
%j年內(nèi)的一天(001-366)
%p本地A.M.或P.M.的等價(jià)符
%U一年中的星期數(shù)(00-53)星期天為星期的開(kāi)始
-%w星期(0-6),星期天為星期的開(kāi)始
-%W一年中的星期數(shù)(00-53)星期一為星期的開(kāi)始
?%x本地相應(yīng)的日期表示
?%X本地相應(yīng)的時(shí)間表示
?%2當(dāng)前時(shí)區(qū)的名稱
?%%%號(hào)本身
5.獲取某個(gè)月的日歷
importcalendar
cal=calendar.month(2016,1)
6.Time和Calendar模塊的函數(shù)及屬性
函數(shù)
描述
time.altzone
返回格林威治西部的夏令時(shí)地區(qū)的偏移秒數(shù)。如果該地區(qū)在格林威治東部會(huì)返回負(fù)值(如西
歐,包括英國(guó)卜對(duì)夏令時(shí)啟用地區(qū)才能使用。
time.asctime([tupletime])
接受時(shí)間元組并返回一個(gè)可讀的形式為“TueDec1118:0712月11日周
二18時(shí)07分14秒)的24個(gè)字符的字符串。
time.clock()
用以浮點(diǎn)數(shù)計(jì)算的秒數(shù)返回當(dāng)前的CPU時(shí)間。用來(lái)衡量不同程序的耗時(shí),比time.time()更
有用。
time.ctime([secs])
作用相當(dāng)于asctime(localtime(secs)),未給參數(shù)相當(dāng)于asctime()
time.gmtime([secs])
接收時(shí)間輟(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù))并返回格林威治天文時(shí)間下的時(shí)間元組to注:
t.tmjsdst始終為0
time.localtime([secs])
接收時(shí)間輟(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù))并返回當(dāng)?shù)貢r(shí)間下的時(shí)間元組t(t.tmjsdst可
取0或1,取決于當(dāng)?shù)禺?dāng)時(shí)是不是夏令時(shí)卜
time.mktime(tupletime)
接受時(shí)間元組并返回時(shí)間輟(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù)卜
time.sleep(secs)
推遲調(diào)用線程的運(yùn)行,secs指秒數(shù)。
time.strftime(fmt[,tupletime])
接收以時(shí)間元組,并返回以可讀字符串表示的當(dāng)?shù)貢r(shí)間,格式由fmt決定。
time.strptime(str,fmt='%a%b%d%H:%M:%S%Y')
根據(jù)fmt的格式把一個(gè)時(shí)間字符串解析為時(shí)間元組。
time.time()
返回當(dāng)前時(shí)間的時(shí)間戳(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù)卜
time.tzset()
根據(jù)環(huán)境變量TZ重新初始化時(shí)間相關(guān)設(shè)置
Time模塊包含了以下2個(gè)非常重要的屬性:
屬性
描述
time.timezone
屬性time.timezone是當(dāng)?shù)貢r(shí)區(qū)(未啟動(dòng)夏令時(shí))距離格林威治的偏移秒數(shù)(>0,美洲;<二0
大部分歐洲,亞洲,非洲)0
time.tzname
屬性time.tzname包含一對(duì)根據(jù)情況的不同而不同的字符串,分別是帶夏令時(shí)的本地時(shí)區(qū)名
稱,和不帶的。
函數(shù)
描述
calendar.calendar(year,w=2,l=1,c=6)
返回一個(gè)多行字符串格式的year年年歷,3個(gè)月一行,間隔距寓為c。每日寬度間隔為w
字符。每行長(zhǎng)度為21*W+18+2*C。I是每星期行數(shù)。
calendar.firstweekday()
返回當(dāng)前每周起始日期的設(shè)置。默認(rèn)情況下,首次載入caendar模塊時(shí)返回0,即星期一。
calendar.isleap(year)
是閏年返回True,否則為false。
calendar.leapdays(y1,y2)
返回在Y1,丫2兩年之間的閏年總數(shù)。
calendar.month(year,month,w=2,1=1)
返回一個(gè)多行字符串格式的year年month月曰歷,兩行標(biāo)題,一周一行。每日寬度間隔為
w字符。每行的長(zhǎng)度為7*w+6。I是每星期的行數(shù)。
calendar.monthcalendar(year,month)
返回一個(gè)整數(shù)的單層嵌套列表。每個(gè)子列表裝載代表一個(gè)星期的整數(shù)。Year年month月外
的日期都設(shè)為0;范圍內(nèi)的日子都由該月第幾日表示,從1開(kāi)始。
calendar,monthrange(year,month)
返回兩個(gè)整數(shù)。第一個(gè)是該月的星期幾的日期碼,第二個(gè)是該月的日期碼。日從0(星期一)
至46(星期日);月從1到12。
calendar.prcal(year;w=2,l=1,c=6)
相當(dāng)于printcalendar.calendar(year,w,l,c).
calendar.prmonth(year,month,w=2,l=1)
相當(dāng)于printcalendar.calendar(year,w,I,c)&
calendar.setfirstweekday(weekday)
設(shè)置每周的起始日期碼。0(星期一)到6(星期日卜
calendar.timegm(tupletime)
和time.gmtime相反:接受一個(gè)時(shí)間元組形式,返回該時(shí)刻的時(shí)間輟(1970紀(jì)元后經(jīng)過(guò)的
浮點(diǎn)秒數(shù)卜
calendar.weekday(year,month,day)
返回給定日期的日期碼。0(星期一)到6(星期日卜月份為1(一月)到12(12月卜
7.其他可以處理時(shí)間的模塊
?datetime模塊
?pytz模塊
dateutil模塊
Python函數(shù)
函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。
1.Python函數(shù)定義
deffunctionname(parameters):
"函數(shù)_文檔字符串"
function_suite
return[expression]
2.對(duì)象創(chuàng)建
在python中,類(lèi)型屬于對(duì)象,變量是沒(méi)有類(lèi)型的:
a=[1,2,3]#賦值后這個(gè)對(duì)象就已經(jīng)創(chuàng)建好了
a="Runoob"
以上代碼中,[1,2,3]是List類(lèi)型,"Runoob"是String類(lèi)型,而變量a是沒(méi)有類(lèi)型,她
僅僅是一個(gè)對(duì)象的引用(一個(gè)指針),可以是List類(lèi)型對(duì)象,也可以指向String類(lèi)型對(duì)象。
3.可更改對(duì)象和不可更改對(duì)象
在python中,strings,tuples,和numbers是不可更改(重新賦值后,原值不再存在)的
對(duì)象,而list,diet等則是可以修改(重新賦值后,原來(lái)的值依舊存在,依舊可以獲取到)的
對(duì)象。
?不可變類(lèi)型:變量賦值a=5后再賦值a=10,這里實(shí)際是新生成一個(gè)int值對(duì)象10,
再讓a指向它,而5被丟棄,不是改變a的值,相當(dāng)于新生成了a。
?可變類(lèi)型:變量賦值la=[1,2,3,4]后再賦值la[2]=5則是將listla的第三個(gè)元素值更改,
本身la沒(méi)有動(dòng),只是其內(nèi)部的一部分值被修改了。
4.可更改對(duì)象和不可更改對(duì)象的參數(shù)傳遞
python函數(shù)的參數(shù)傳遞:
不可變類(lèi)型:類(lèi)似C++的值傳遞,如整數(shù)、字符串、元組。如fun(a),傳遞的只是a的
值,沒(méi)有影響a對(duì)象本身。比如在fun(a)內(nèi)部修改a的值,只是修改另一個(gè)復(fù)制的對(duì)象,
不會(huì)影響a本身。
defChangelnt(a):
a=10
b=2
Changelnt(b)
print(b)#結(jié)果是2
int2對(duì)象指向變量b,而調(diào)用changelnt函數(shù)時(shí),變量a就是變量b,此時(shí)的變量a和變量
b都對(duì)應(yīng)int2對(duì)象,但是在之后a被重新賦值為10,此時(shí)變量a指向?qū)ο骾nt10,產(chǎn)生了
一個(gè)新的int型對(duì)象,而變量b所指向的對(duì)象不變。
可變類(lèi)型:類(lèi)似C++的引用傳遞,如列表,字典。如fun(la),則是將la真正的傳過(guò)去,
修改后fun外部的la也會(huì)受影響
python中一切都是對(duì)象,嚴(yán)格意義我們不能說(shuō)值傳遞還是引用傳遞,我們應(yīng)該說(shuō)傳不可變
對(duì)象和傳可變對(duì)象。
defchangeme(mylist):
mylist.append([1,2,3,4]);#"修改傳入的列表"
print("函數(shù)內(nèi)取值:",mylist)
return
#調(diào)用changeme函數(shù)
mylist=[10,20,30];
changeme(mylist);
print("函數(shù)外取值:",mylist)
因?yàn)樯厦娴拇a傳遞的是可變對(duì)象,因此在函數(shù)內(nèi)取值和函數(shù)外取值都是同樣的結(jié)果。
5.調(diào)用函數(shù)時(shí)的參數(shù)使用
1)必備參數(shù)
必須與函數(shù)聲明時(shí)一致的順序來(lái)傳遞參數(shù)。
2)關(guān)鍵字參數(shù)
傳參數(shù)時(shí)可與函數(shù)聲明的順序不一樣,因?yàn)镻ython解釋器可以用參數(shù)名來(lái)匹配參數(shù)值。
3)缺省參數(shù)
傳入?yún)?shù)時(shí)未給參數(shù)賦值,則保持默認(rèn)值。
#可寫(xiě)函數(shù)說(shuō)明
defprintinfo(name,age=35):
print("Name:",name);#"打印任何傳入的字符串"
print("Age",age);
return;
#調(diào)用printinfo函數(shù)
printinfo(age=50,name="miki");
printinfo(name="miki");
這里第二句的age沒(méi)有輸入值,則輸出默認(rèn)值35。
4)不定長(zhǎng)參數(shù)(也就是包含非必備參數(shù)的參數(shù)定義)
當(dāng)不確定會(huì)傳入?yún)?shù)的個(gè)數(shù)時(shí),可以對(duì)可以不輸入的參數(shù)名前面加“*',按順序輸入時(shí)進(jìn)
行對(duì)應(yīng)即可。
defprintinfo(arg1,*vartuple):
print("輸出:H,arg1)#“打印任何傳入的參數(shù)”
forvarinvartuple:
printvar
return;
#調(diào)用printinfo函數(shù)
printinfo(IO);
printinfo(70,60,50);
5.匿名函數(shù)(使用lambda創(chuàng)建)
python使用lambda來(lái)創(chuàng)建匿名函數(shù)。
lambda只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。
lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的
邏輯進(jìn)去。
lambda函數(shù)擁有自己的命名空間,且不能訪問(wèn)自有參數(shù)列表之外或全局命名空間里的參數(shù)
(只能訪問(wèn)自己的命名空間里的參數(shù)卜
雖然lambda函數(shù)看起來(lái)只能寫(xiě)一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)
用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率。
#用一^語(yǔ)句來(lái)定義一^Sum函數(shù)
sum=lambdaarg1,arg2:arg1+arg2;
#調(diào)用sum函數(shù)
print("相加后的值為sum(10,20))
print("相加后的值為:",sum(20,20))
6.變量作用域
1)全局變量
定義在所有函數(shù)外則為全局變量,可在所有代碼中使用。
當(dāng)需要在函數(shù)內(nèi)定義全局變量時(shí),必須用global語(yǔ)句。
2)局部變量
定義在函數(shù)內(nèi)則為局部變量,只能在相應(yīng)的代碼塊內(nèi)使用。
total=0;#這是一個(gè)全局變量
#可寫(xiě)函數(shù)說(shuō)明
defsum(arg1,arg2):#返回2個(gè)參數(shù)的和
total=arg1+arg2;#total在這里是局部變量.
print("函數(shù)內(nèi)是局部變量:”,total)
return(total);
#調(diào)用sum函數(shù)
sum(10,20);
print(“函數(shù)外是全局變量:total)
在上面的例子中,在函數(shù)內(nèi)部,total是局部變量,而在外部total是全局變量,局部變量的
改變不會(huì)改變?nèi)肿兞康闹?,因此第一個(gè)打印結(jié)果是30,而第二個(gè)是0。
Python模塊
Python模塊(Module),是一個(gè)Python文件,以.py結(jié)尾,包含了Python對(duì)象定義和
Python語(yǔ)句。
模塊讓你能夠有邏輯地組織你的Python代碼段。
把相關(guān)的代碼分配到一個(gè)模塊里能讓你的代碼更好用,更易懂。
1.導(dǎo)入模塊的三種方法的區(qū)別
1)import導(dǎo)入
importsupport#導(dǎo)入模塊,并不導(dǎo)入單個(gè)函數(shù)
#現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了,但是必須通過(guò)模塊名.函數(shù)名的方式調(diào)用
support.print_func("Runoob")
2)From...import導(dǎo)入
下面的語(yǔ)句可以將模塊中的某一部分導(dǎo)入,它只會(huì)將里這個(gè)部分單個(gè)引入到執(zhí)行這個(gè)聲明的
模塊的全局符號(hào)表。這個(gè)部分可以是某個(gè)函數(shù)塊,也可以是函數(shù)塊的子函數(shù)塊。
frommodnameimportname1[,name2[,...nameN]]
3)From...import*導(dǎo)入
前兩種語(yǔ)句都是導(dǎo)入模塊的部分,只是部分導(dǎo)入的位置不同,而使用From…import*則是導(dǎo)
入模塊的全部項(xiàng)目,盡量少用,太耗內(nèi)存。
2.命名空間和作用域
變量是擁有匹配對(duì)象的名字(標(biāo)識(shí)符'
命名空間是一個(gè)包含了變量名稱們(鍵)和它們各自相應(yīng)的對(duì)象們(值)的字典。每個(gè)函數(shù)
都會(huì)有自己的命名空間,當(dāng)變量出現(xiàn)在函數(shù)內(nèi)部時(shí),Python默認(rèn)其為局部變量,若存在一
個(gè)與局部變量重名的全局變量,則由局部變量覆蓋全局變量。
Python的命名空間分局部命名空間和全局命名空間。
3.找出模塊中所有的模塊名、函數(shù)名、變量名(dir()函數(shù))
#導(dǎo)入內(nèi)置math模塊
importmath
content=dir(math)
printcontent;
以上實(shí)例輸出結(jié)果:
['_doc__file—1—name—'acos','asin1,^tan',
'atan2\'ceil','cos','cosh',?degrees*,'e\'exp',
'fabs','floor','fmod','frexp','hypot','Idexp','log',
,logW,'modf,'pi','pow','radians','sin1,?sinh',
^qrt',ftan','tanh']
在這里,特殊字符串變量_name_指向模塊的名字,_file_指向該模塊的導(dǎo)入文件名。
4.查看全局變量和局部變量命名空間
根據(jù)調(diào)用地方的不同,globals()和locals。函數(shù)可被用來(lái)返回全局和局部命名空間里的名字。
如果在函數(shù)內(nèi)部調(diào)用locals(),返回的是所有能在該函數(shù)里訪問(wèn)的命名。
如果在函數(shù)內(nèi)部調(diào)用globals(),返回的是所有在該函數(shù)里能訪問(wèn)的全局名字。
兩個(gè)函數(shù)的返回類(lèi)型都是字典。所以名字們能用keys()函數(shù)摘取。
5.reload()函數(shù)
當(dāng)一個(gè)模塊被導(dǎo)入到一個(gè)腳本,模塊頂層部分的代碼只會(huì)被執(zhí)行一次。
因此,如果你想重新執(zhí)行模塊里頂層部分的代碼,可以用reload()函數(shù)。該函數(shù)會(huì)重新導(dǎo)
入之前導(dǎo)入過(guò)的模塊。語(yǔ)法如下:在這里,module_name要直接放模塊的名字,而不是一
個(gè)字符串形式。
reload(module_name)
PythonI/O函數(shù)(不只是文件讀寫(xiě))
1.讀取鍵盤(pán)輸入
讀取輸入的行:
str=input("請(qǐng)輸入:");
print("你輸入的內(nèi)容是:",str)
input()函數(shù)可以接受Python表達(dá)式的輸入,并輸出表達(dá)式的計(jì)算結(jié)果
請(qǐng)輸入:[x*5forxinrange(2,10,2)]
你輸入的內(nèi)容是:[10,20,30,40]
2.打開(kāi)、關(guān)閉讀寫(xiě)文件
可以用file對(duì)象對(duì)大多數(shù)文件進(jìn)行操作。
1)打開(kāi)文件
你必須先用Python內(nèi)置的open。函數(shù)打開(kāi)一個(gè)文件,創(chuàng)建一個(gè)file對(duì)象,相關(guān)的方法才可
以調(diào)用它進(jìn)行讀寫(xiě)。
fileobject=open(file_name[,access_mode][,buffering])
?file_name:file_name變量是一個(gè)包含了你要訪問(wèn)的文件名稱的字符串值。
?access_mode:acc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三軸運(yùn)行業(yè)深度研究分析報(bào)告
- 精紡羊毛線項(xiàng)目可行性研究報(bào)告申請(qǐng)建議書(shū)
- 農(nóng)村代建合同范本
- 出租手表合同范本
- 別墅內(nèi)墻抹灰合同范本
- 軍訓(xùn)帶隊(duì)合同范本
- 中性合同范例
- 公司所需文件合同范本
- 2025年度國(guó)際旅游保險(xiǎn)合同標(biāo)準(zhǔn)版
- pocib出口合同范本
- 裝修工程延期協(xié)議
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計(jì)改
- 道路標(biāo)線施工技術(shù)規(guī)程(已執(zhí)行)
- 給排水管道工程分項(xiàng)、分部、單位工程劃分
- 《傻子上學(xué)》臺(tái)詞
- 高中英語(yǔ)新課程標(biāo)準(zhǔn)解讀 (課堂PPT)
- 石灰石石膏濕法脫硫化學(xué)分析方案
- 《數(shù)學(xué)趣味活動(dòng)》PPT課件.ppt
- 銅冶煉渣選銅尾礦還原焙燒—磁選回收鐵工藝研究
- 交接班制度.ppt
- 北師大版五年級(jí)數(shù)學(xué)下冊(cè)導(dǎo)學(xué)案全冊(cè)
評(píng)論
0/150
提交評(píng)論