Python標識符
身份 id方法查看唯一標示符,內存地址
>>> a = "str"
>>> b = 2
>>> id(a)
140223954701072
>>> id(b)
36610848
查看變量的數據類型;
>>> type(b)
<type 'int'>
>>> type(a)
<type 'str'>
要素1:python將所有數據存為內存對象
python中,變量事實上是指向內存對象的引用
動態類型:在任何時刻,只要需要,某個對象引用都可以重新引用一個不同的對象(可以是不同的數據類型)
內建函數type()用於返回給定數據項的數據類型
"="用於將變量名與內存中的某對象綁定:如果對象事先存在,就直接進行綁定;否則,則由"="創建引用對象
>>> name = "tom"
>>> test = "tom"
>>> id(name)
140223953962208
>>> id(test)
140223953962208
要素2:對象引用(變量)
變量的命令規則
1、只能包含字母、數字和下劃線,且不能以數字開頭
2、區分字母大小寫
3、禁止使用保留字
python2與python3的保留字有所不同
命令慣例
1、以單一下劃線開頭變量名(_x)不會被from module import *語句導入
2、前後有下劃線的變量名(_x_)是系統定義的變量名,對python解釋器有特殊的意義
3、以兩個下劃線開頭但結尾沒有下劃線的變量名(__x)是類的本地變量
4、交互式模式下,變量名"_"用於保存最後表達式的結果
注意:變量名沒有類型,對象才有
>>> 1 + 1
2
>>> print _
2
要素3:組合數據類型
一、數據結構:通過某種方式(例如對元素進行編號)組織在一起的數據元素的集合
二、python常用的組合數據類型
序列類型
1、列表:使用[]創建,如['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']
2、元組:使用()創建,如('one','two'),元組是不可變對象;
>>> t1=("This","is","a","pig")
>>> t1[0]
'This'
>>> t1[0][0]
'T'
3、字符串也屬於序列類型
集合類型
集合
映射類型
字典
字符串切片:
>>> 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()測量;
要素4: 邏輯操作符
一、邏輯運算時任何程序設計語言的基本功能
二、Python提供了4組邏輯運算
1、身份操作符
is:判定左端對象引用是否相同於右端對象引用;也可以與none進行;
>>> name = "Tom"
>>> test = "Tom"
>>> name is test
True
>>> test = "firefox"
>>> name is test
False
>>> type(name) is type(test)
True
2、比較操作符
<,>,<=,>-,!=,==
成員操作符
in,或者 not in :測試成員關系
邏輯運算符
and,or,not
要素5:控制流語句
一、控制流語句是過程式編程語言的基本控制機制
二、Python的常見控制流語句
if
if boolean_expression1 :
suite1
elif boolean_expression2:
suite2
...
while
1
2
while boolean_expreesion:
suite
for .. in
for variable in iterable:
suite
try
要素6 :算數操作符
一、Python提供了完成的算術操作集
二、很多的Python數據類型也可以使用增強的賦值操作符,如+=、-=等;
三、同樣的功能,使用增強賦值操作符的性能較好;
四、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.linuxidc.com
Name = '17jo'
Zone = 'com'
print 'www.%s.%s'%(Name,Zone)
>> www.linuxidc.com
字符串格式化時百分號後面有不同的格式符號,代表要轉換的不同類型,具體的表示符號如下面所示。
格式符號 表示類型
%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:函數的創建與調用
1、python使用def語句定義函數
2、函數可參數化,通過傳遞不同的參數來調用
3、每個python函數都有一個返回值,默認為none,也可以使用"return value"明確定義返回值
4、def語句會創建一個函數對象,並同時創建一個指向函數對象引用
函數也是對象,可以存儲在組合數據類型中,也可以作為參數傳遞給其它函數
callable()可用於測試函數是否可調用 ():調用運算符
>>> def testFunc(arg1):
... print arg1
...
>>> callable(testFunc)
True
>>> testFunc("hello world!")
hello world!
>>> test = "firefox"
>>> testFunc(test)
firefox
--------------------------------------分割線 --------------------------------------
CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm
《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm
《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm
Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm
在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm
Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡