1.包的導入
import和from…import
在 python 用 import 或者 from…import 來導入相應的模塊。
將整個模塊(somemodule)導入,格式爲: import somemodule(使用裏面的函數的時候需要指定模塊名)
從某個模塊中導入某個函數,格式爲: from somemodule import somefunction
從某個模塊中導入多個函數,格式爲: from somemodule import firstfunc, secondfunc, thirdfunc
將某個模塊中的全部函數導入,格式爲: from somemodule import *(函數可以直接使用,不需要再指定模塊名)
2.python標準數據類型
Numbers數字
數字數據類型用於存儲數值。不可改變的數據類型,改變數字數據類型會分配一個新的對象。可以使用del語句刪除若干個對象的引用
del var,var0
有四種不同類型的數字類型
int
long(python2.x中有,2.2之後int類型數據溢出之後自動轉換,python3.x中移除,3.x中int保存爲long)
float
complex: 複數a+bj或者complex(a,b)
運算
乘方:2**5=32
String字符串
可以由數字字母下劃線組成
可以用單引號,雙引號,三引號
字串列表有兩種不同的取值順序:從左到右0 – n-1,從右到左-1 – -n;
‘\’表示轉義,可以在字符串前面添加一個r,讓轉義不發生。print(r’Ru\noob’)–>Ru\noob
獲取字串方法:
可以使用【頭下標:尾下標】來進行截取相應的字符串,下標爲空表示從取頭或者尾。取出來的字串包含頭下標的字符,不包含尾下標的字符。
testnum = "123456789"
test = testnum[-3:-1] # 78
字符串獲取還可以有第三個參數,表示的是截取的步長
testnum = "123456789"
test = testnum[0:5:2] # 135
字符串拼接
‘+’表示字符串連接
‘’表示重複操作 :例如 str=‘aas’ str1=str2(str1=‘aasaas’)
格式化字符串
#!/usr/bin/python3
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
List列表
列表是使用最頻繁的數據類型,可以完成大多數集合類的數據結構實現。支持字符,數字,字符串甚至可以嵌套使用。同時他也可以進行分割 同上.
和string不同的是,列表中的元素是可以改變的。
>>>a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = [] # 將對應的元素值設置爲 []
>>> a
[9, 2, 6]
list有append(),count(obj),extend(seq)【在一個列表的末尾一次性追加另一個序列中的多個值】,insert(index,obj),remove(obj),reverse(),sort(key=None,reverse=false),pop(index)這些方法
list中的截取,如果第三個參數是負數,那麼表示的是翻轉字符串
列表可以嵌套使用。
def reverseWords(input):
# 通過空格將字符串分隔符,把各個單詞分隔爲列表
inputWords = input.split(" ")
# 翻轉字符串
# 假設列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最後一個元素 list[-1]=4 ( 與 list[3]=4 一樣)
# inputWords[-1::-1] 有三個參數
# 第一個參數 -1 表示最後一個元素
# 第二個參數爲空,表示移動到列表末尾
# 第三個參數爲步長,-1 表示逆向
inputWords=inputWords[-1::-1]
# 重新組合字符串
output = ' '.join(inputWords)
return output
if __name__ == "__main__":
input = 'I like runoob'
rw = reverseWords(input)
print(rw)
Tuple元組
和list類似,但是元組的元素不能修改,元組寫在小括號裏面,元素之間用逗號隔開,元組中的元素類型可以不相同。
元組元素雖然是不可以改變的但是他們可以包含可以改變的對象,比如list列表。
tup=()
tup=(20,) #單個元素的元組
可以用+進行拼接
函數 tuple(seq)把列表轉換成爲元組。
所謂的元組不可變
是指元組指向的內存中內容不可改變,當我們對一個元組進行重新的賦值的時候,元組會被綁定到新的對象,而不是修改了原來的對象。
Dictionary字典
字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典是一種映射類型,字典用 { } 標識,它是一個無序的 鍵(key) : 值(value) 的集合。
鍵(key)必須使用不可變類型。
在同一個字典中,鍵(key)必須是唯一的。
#!/usr/bin/python3
dict = {}
dict['one'] = "1 - 菜鳥教程"
dict[2] = "2 - 菜鳥工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print (dict['one']) # 輸出鍵爲 'one' 的值
print (dict[2]) # 輸出鍵爲 2 的值
print (tinydict) # 輸出完整的字典
print (tinydict.keys()) # 輸出所有鍵
print (tinydict.values()) # 輸出所有值
## 輸出結果
1 - 菜鳥教程
2 - 菜鳥工具
{'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])
另外的構造方法
元組的刪除
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 刪除鍵 'Name'
dict.clear() # 清空字典
del dict # 刪除字典
print ("dict['Age']: ", dict['Age']) # 這裏是會報錯的,因爲字典已經被刪除
print ("dict['School']: ", dict['School'])
>>>dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Runoob=1, Google=2, Taobao=3)
{'Runoob': 1, 'Google': 2, 'Taobao': 3}
函數:str(dict) 輸出字典,以可以打印的字符串表示
內置方法:
clear() delete all
copy() 返回一個字典的淺複製
fromkey() 創建一個新的字典,以序列seq中的元素作爲字典的鍵,val爲字典所有鍵對應的初始值
get(key,default=None)返回指定鍵的值,如果值不在字典中那麼就返回default值
radiansdict.setdefault(key, default=None)
和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設爲default
update(dict2)
把字典dict2的鍵/值對更新到dict裏
pop(key[,default])
刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 否則,返回default值。
popitem()
隨機返回並刪除字典中的最後一對鍵和值。
radiansdict.values()
返回一個迭代器,可以使用 list() 來轉換爲列表
Set集合(3.x)
用{}或者set()創建集合,空集合必須用set(),{}是創建空字典
set的基本功能室進行成員關係測試和刪除重複的元素
#!/usr/bin/python3
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 輸出集合,重複的元素被自動去掉
# 成員測試
if 'Rose' in student :
print('Rose 在集合中')
else :
print('Rose 不在集合中')
# set可以進行集合運算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的並集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同時存在的元素
student.add('dong') # 添加元素
student.update(obj) # 也是添加元素,參數可以是列表元組字典等
student.remove(x) # 移除x 如果不存在那麼報錯
student.discard(x) #移除x 如果不存在不發生錯誤
pop() #隨機刪除
一些數據類型轉換
int(x [,base])
將x轉換爲一個整數
float(x)
將x轉換到一個浮點數
complex(real [,imag])
創建一個複數
str(x)
將對象 x 轉換爲字符串
repr(x)
將對象 x 轉換爲表達式字符串
eval(str)
用來計算在字符串中的有效Python表達式,並返回一個對象
tuple(s)
將序列 s 轉換爲一個元組
list(s)
將序列 s 轉換爲一個列表
set(s)
轉換爲可變集合
dict(d)
創建一個字典。d 必須是一個 (key, value)元組序列。
frozenset(s)
轉換爲不可變集合
chr(x)
將一個整數轉換爲一個字符
ord(x)
將一個字符轉換爲它的整數值
hex(x)
將一個整數轉換爲一個十六進制字符串
oct(x)
將一個整數轉換爲一個八進制字符串