python標識符
身份 id方法查看惟一標示符,內存地址python
>>> a = "str" >>> b = 2 >>> id(a) 140223954701072 >>> id(b) 36610848 查看變量的數據類型; >>> type(b) <type 'int'> >>> type(a) <type 'str'>
要素1:python將全部數據存爲內存對象express
python中,變量事實上是指向內存對象的引用
動態類型:在任什麼時候刻,只要須要,某個對象引用均可以從新引用一個不一樣的對象(能夠是不一樣的數據類型)
內建函數type()用於返回給定數據項的數據類型
"="用於將變量名與內存中的某對象綁定:若是對象事先存在,就直接進行綁定;不然,則由"="建立引用對象
編程
>>> name = "tom" >>> test = "tom" >>> id(name) 140223953962208 >>> id(test) 140223953962208
要素2:對象引用(變量)
變量的命令規則
一、只能包含字母、數字和下劃線,且不能以數字開頭
二、區分字母大小寫
三、禁止使用保留字
python2與python3的保留字有所不一樣
命令慣例
一、以單一下劃線開頭變量名(_x)不會被from module import *語句導入
二、先後有下劃線的變量名(_x_)是系統定義的變量名,對python解釋器有特殊的意義
三、以兩個下劃線開頭但結尾沒有下劃線的變量名(__x)是類的本地變量
四、交互式模式下,變量名"_"用於保存最後表達式的結果
注意:變量名沒有類型,對象纔有數據結構
>>> 1 + 1 2 >>> print _ 2
要素3:組合數據類型
1、數據結構:經過某種方式(例如對元素進行編號)組織在一塊兒的數據元素的集合
2、python經常使用的組合數據類型
序列類型
一、列表:使用[]建立,如['call','me','Ishmeal','.'],列表是可變對象;支持原處修改;編程語言
>>> l1=["This","is","a","pig"] >>> l1[0] 'This' >>> l1[0][0] 'T'
而且指向的內存對象;列表在內存中的地址空間保持不變;
注意:列表中存儲的是指針;而指針指向的是內存對象的數據元素;
列表中的數據元素自己是不可變的;變的是引用;函數
>>> print l1 ['This', 'is', 'a', 'sheep'] >>> id(l1) 140223953808704 >>> l1[3]="pig" >>> id(l1) 140223953808704 >>> print l1 ['This', 'is', 'a', 'pig'] 二、元組:使用()建立,如('one','two'),元組是不可變對象; >>> t1=("This","is","a","pig") >>> t1[0] 'This' >>> t1[0][0] 'T'
三、字符串也屬於序列類型
集合類型
集合
映射類型
字典性能
字符串切片:測試
>>> name = "firefox" >>> name[0] 'f' >>> name[0:2] 'fi' >>> name[0:3] 'fir' >>> name[1:2] 'i' >>> name[:2] 'fi' >>> name[2:] 'refox'
指定字符串的步進;
>>> name[0:7:2]
'frfx'
要素3 二: 組合數據類型
列表是可變序列,元組是不可變序列
python中,組合數據類型也是對象,所以其能夠嵌套
['hello','world',[1,2,3]]
實質上,列表和元組並不真正存儲數據,而是存放對象引用
python對象能夠具備其能夠被調用的特定"方法(函數)"
元組、列表以及字符串等數據類型是"有大小的",也即,其長度可使用內置函數len()測量;ui
要素4: 邏輯操做符this
1、邏輯運算時任何程序設計語言的基本功能
2、Python提供了4組邏輯運算
一、身份操做符
is:斷定左端對象引用是否相同於右端對象引用;也能夠與none進行;
>>> name = "Tom" >>> test = "Tom" >>> name is test True >>> test = "firefox" >>> name is test False >>> type(name) is type(test) True
二、比較操做符
<,>,<=,>-,!=,== 成員操做符 in,或者 not in :測試成員關係 邏輯運算符 and,or,not
要素5:控制流語句
1、控制流語句是過程式編程語言的基本控制機制
2、Python的常見控制流語句
if
if boolean_expression1 : suite1 elif boolean_expression2: suite2 ...
while
while boolean_expreesion: suite
for .. in
for variable in iterable: suite
try
要素6 :算數操做符
1、Python提供了完成的算術操做集
2、不少的Python數據類型也可使用加強的賦值操做符,如+=、-=等;
3、一樣的功能,使用加強賦值操做符的性能較好;
4、Python的int類型是不可變的,所以,加強類型賦值的實際過程是建立了一個新的對象來存儲結果後將變量名執行了從新綁定
要素7 :輸出/輸出
現實中,具備實際功能的程序必須可以讀取輸入(如從鍵盤或文件中),以及產生輸出,並寫到終端或文件中;
python的輸入/輸出
輸出 python3: print()函數 python2: print語句 輸入 input() raw_input() >>> raw_input("plz input a name:") plz input a name:firefox 'firefox' >>> a= raw_input("plz input a name:") plz input a name:firefox >>> print a firefox
python解釋器提供了3中標準文件對象,分別是標準輸入、標準輸出和標準錯誤,它們在sys模塊中分別以sys.stdin、sys.stdout、sys.stderr形式提供;
print 接受一個逗號分隔的對象列表,併爲行尾自動添加一個換行符,若是不須要,則在最後個元素後添加逗號;
>>> a="this is a" >>> b="pig" >>> print a,b this is a pig
print "string %format1 %format2 ...." %(variable1,variable2...)
%後面可使用修飾符,(若是有,則只能按照以下順序)
%[name][flags][width][.precision]typecode
位於括號中的一個屬於後面的字典的鍵名,用於選出一個具體想
下面標誌中的一個或多個
_:表示左對齊,默認右對齊 +:表示包含數字符號,整數也會帶"+" 0:表示一個零填充
>>> num = 7.9 >>> print "The num is %f" % num The num is 7.900000 >>> print "The num is %d" % num The num is 7 >>> num2 = 7.12 >>> print num 7.9 >>> print num2 7.12 >>> print "The nums are %d and %f" % (num, num2) The nums are 7 and 7.120000 >>> print "The nums are %d and %f" % (num, 3.1) The nums are 7 and 3.100000 >>> print "The nums are %e and %f" % (num, 3.1) The nums are 7.900000e+00 and 3.100000 >>> print "The name is %s." %name The name is Tome. >>> print "The name is %s." % num The name is 7.9. #數據類型轉換: 1、顯示轉換: >>> test = str(num) >>> type(test) <type 'str'> >>> type(num) <type 'float'> >>> print num 7.9
Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(變量1,變量2),%格式表示接受變量的類型。簡單的使用例子以下 # 例:字符串格式化 Name = '17jo' print 'www.%s.com'%Name >> www.111cn.net Name = '17jo' Zone = 'com' print 'www.%s.%s'%(Name,Zone) >> www.111cn.net 字符串格式化時百分號後面有不一樣的格式符號,表明要轉換的不一樣類型,具體的表示符號以下面所示。 格式符號 表示類型 %s 字符串 %d/%i 十進制整數或長整數 %u 無符號整數或十進制整數 %o 八進制整數或長整數 %x/%X 十六進制整數或長整數(%X:大寫字母) %e/%E 科學計數;浮點數 %f/%F 浮點數 %% 輸出%
% 字面量%
%c 單個字符
%r 同repr()生成的字符串
%g,G 指數小於-4或更高精度是使用%e或%E,不然使用%f 格式符號爲數字時前面能夠加爲數和補缺位如:%[0][總位數][.][小數位數]來設定要轉換的樣式,具體使用方法以下: # 例:數字格式化 nYear = 2018 nMonth = 8 nDay = 18 # 格式化日期 %02d數字轉成兩位整型缺位填0 print '%04d-%02d-%02d'%(nYear,nMonth,nDay) >> 2018-08-18 # 輸出結果 fValue = 8.123 print '%06.2f'%fValue # 保留寬度爲6的2位小數浮點型 >> 008.12 # 輸出 print '%d'%10 # 輸出十進制 >> 10 print '%o'%10 # 輸出八進制 >> 12 print '%02x'%10 # 輸出兩位十六進制,字母小寫空缺補零 >> 0a print '%04X'%10 # 輸出四位十六進制,字母大寫空缺補零 >> 000A print '%.2e'%1.2888 # 以科學計數法輸出浮點型保留2位小數 >> 1.29e+00 到此,咱們已經演示了怎樣替換指定的字段。咱們還能夠經過在格式化指示符後面添加一個冒號來進行精確格式化。例如: python: format # Field 0: left justify, pad to 15 characters # Field 1: right justify, pad to 6 characters fmt = '{0:15} ${1:>6}' fmt.format('Registration', 35) -> 'Registration $ 35' fmt.format('Tutorial', 50) -> 'Tutorial $ 50' fmt.format('Banquet', 125) -> 'Banquet $ 125' 格式化指示符能夠經過嵌套進行引用。 fmt = '{0:{1}}' width = 15 fmt.format('Invoice #1234', width) -> 'Invoice #1234 ' width = 35 fmt.format('Invoice #1234', width) -> 'Invoice #1234 ' 能夠指定所需長度的字符串的對齊方式。 效果字符: < (默認)左對齊 > 右對齊 ^ 中間對齊 = (只用於數字)在小數點後進行補齊 格式化指示符能夠包含一個展現類型來控制格式。例如,浮點數能夠被格式化爲通常格式或用冪來表示。 >>> '{0:g}'.format(3.75) '3.75' >>> '{0:e}'.format(3.75) '3.750000e+00' 展現類型有不少。2.6的文檔裏有完整的列表。這裏列出一些示例。 'b' - 二進制。將數字以2爲基數進行輸出。 'c' - 字符。在打印以前將整數轉換成對應的Unicode字符串。 'd' - 十進制整數。將數字以10爲基數進行輸出。 'o' - 八進制。將數字以8爲基數進行輸出。 'x' - 十六進制。將數字以16爲基數進行輸出,9以上的位數用小寫字母。 'e' - 冪符號。用科學計數法打印數字。用'e'表示冪。 'g' - 通常格式。將數值以fixed-point格式輸出。當數值特別大的時候,用冪形式打印。 'n' - 數字。當值爲整數時和'd'相同,值爲浮點數時和'g'相同。不一樣的是它會根據區域設置插入數字分隔符。 '%' - 百分數。將數值乘以100而後以fixed-point('f')格式打印,值後面會有一個百分號。 類和類型能夠定義一個__format__()方法來控制怎樣格式化本身。它會接受一個格式化指示符做爲參數: def __format__(self, format_spec): if isinstance(format_spec, unicode): return unicode(str(self)) else: return str(self) 還有一個內置的format()方法能夠用來格式化一個值。它會調用類型的__format__()方法,並將格式化指示符做爲參數傳進去。 >>> format(75.6564, '.2f')
要素8:函數的建立與調用
一、python使用def語句定義函數
二、函數可參數化,經過傳遞不一樣的參數來調用
三、每一個python函數都有一個返回值,默認爲none,也可使用"return value"明肯定義返回值
四、def語句會建立一個函數對象,並同時建立一個指向函數對象引用
函數也是對象,能夠存儲在組合數據類型中,也能夠做爲參數傳遞給其它函數
callable()可用於測試函數是否可調用 ():調用運算符
>>> def testFunc(arg1):
... print arg1
...
>>> callable(testFunc)
True
>>> testFunc("hello world!")
hello world!
>>> test = "firefox">>> testFunc(test)firefox