Python學習第一天
Python簡介
請自行百度
Python版本
CPython、JPython...具體介紹請百度
Python應用
Web Programming:Django,Pyramid,Bottle,Tornado,Flask,Web2py
GUI Development:wxPython,tkinter,PyGtk,PyGObject,PyQt
Scientific and Numeric:SciPy,Pandas,IPython
Software Development:Buildbot,Trac,Roundup
System Administration:Ansible,Salt,OpenStack
Windows使用環境
使用Python2.7和Python3.5版本,課程以Python3為主。
下載Python2.7和3.0安裝並配置環境變量
IDE使用pycharm
Python解釋器執行的步驟
加載內存、語法分析、編譯變成字節碼,執行字節碼,內存讀取字節碼,內存將字節碼轉換成機器碼。
Python2.x和3.x常用語法不同之處
Python3默認編碼為unicode,不再出現Python2中因編碼問題出現的bug。
Old:raw_input input
New:input() eval(input())
Old:print
New:print() print("",end="")
input()==eval(input)#左邊是python2寫法,右邊是python3寫法
raw_input()==input()#左邊是python2寫法,右邊是python3寫法
數據類型分為兩部分:
1、 單值
數字
整型
長整型
浮點型
復數
布爾值 True(1),False(0)
字符串
2、 集合
列表
元祖
字典
Set哈希表
變量命名規則
1、變量名只能是字母、數字或下劃線的任意組合;變量名第一個字符不能是數字;變量名命名不能使用關鍵字。
如: [‘and‘,‘int‘,‘str‘]...
變量與賦值
賦值傳參:將右邊的參數賦值給左邊的名稱,名稱為後期程序調用。
字符串需要加引號引起來,數字則不加引號
變量
#!/uer/bin/env python3
>>> name = "張三"#字符串需要用引號引起來
>>> age = 22 #數字不需要加引號
>>> print(name,age)
張三 22
>>> name = zhangsan #不加引號報錯
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = zhangsan
NameError: name ‘zhangsan‘ is not defined
id() id用於查看變量內存地址是否一致
>>> a = 3
>>> b = a #內存中b指向3
>>> a = 5
>>> print(a,b)
(5, 3)
>>> a = 3
>>> b = a
>>> id(a);id(b)#內存地址一樣
32046816
>>> a = 5
>>> id(a);id(b)#內存地址不一樣
32046816
字符串 #不可修改的
字符格式化
#!/usr/bin/env python3
name = input("name:")
age = input("age:")
print("name %s:\nage %s:" % (name,age))
字符串格式符號含義#摘自bbs.fishc.com
符號 | 說明 |
%c | 格式化字符及其ASCII碼 |
%s | 格式字符串 |
%d | 格式化整數 |
%o | 格式化無符號八進制數 |
%x | 格式化無符號十六進制數 |
%X | 格式化無符號十六進制數(大寫) |
%f | 格式化定點數,可指定小數點後的精度 |
%e | 用科學計數法格式化定點數 |
%E | 作用同%e,用科學計數法格式化定點數 |
%g | 根據值的大小決定使用%f或者%e |
%G | 作用同%g,根據值的大小決定使用%f或者%E |
字符串轉義字符含義#摘自bbs.fishc.com
符號 | 說明 |
\’ | 單引號 |
\” | 雙引號 |
\a | 發出系統響鈴聲 |
\b | 退格符 |
\n | 換行符 |
\t | 橫向制表符(TAB) |
\v | 縱向制表符 |
\r | 回車符 |
\f | 換行符 |
\o | 八進制數代表的字符 |
\x | 十六進制數代表的字符 |
\0 | 表示一個空字符 |
\\ | 反斜杠 |
字符串常用功能:
移除空白:strip(); lstrip(); rstrip()
分割:split() split(‘\t’) 按tab鍵分割
長度:len()
索引:0開始,-1從尾開始
切片:[0]
列表[] #數據可修改
列表寫法:
name_list = ["alex","seven","eric"]
或
name_list = list(["alex","seven","eric"])
基本操作:
索引從0開始負數為-1開始
切片[0]
包含:in
長度:len()
刪除: del(); del name_list [0]
循環:for
連接:join ; ‘_’.join(nam_list)
append追加
>>> name_list = ["alex","65brother","tenglan"]
>>> name_list.append("eric")
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
count 統計
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.count("65brother")#統計
extend 擴展
>>> name_list = [‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘]
>>> name_list.extend(name_list)#一個列表擴展另一個列表
>>> name_list
[‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘, ‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘]
>>> name_list.extend(["a","b","c"])#一個列表擴展另一個列表
>>> name_list
[‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘, ‘a‘, ‘b‘, ‘c‘]
index 索引
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.index("65brother")#索引
insert 插入
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.insert(2,"66brother")#插入指定位置
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
pop 刪除或接收
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.pop()#刪除最後一個
‘65brother‘
>>> name_list.pop(1)#通過下標刪除指定值
‘alex‘
>>> name = name_list.pop(-1)#通過下標刪除指定值並作賦值
>>> name
‘eric‘
remove 刪除指定一個
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘]
name_list.remove("66brother")#刪除指定值
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
reverse 反轉
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
>>> name_list.reverse()#反轉
>>> name_list
[‘eric‘, ‘tenglan‘, ‘65brother‘, ‘alex‘]
sort 排序
#python3中是按同類型進行排序
>>> name_list
[‘eric‘, ‘tenglan‘, ‘65brother‘, ‘alex‘]
>>> name_list.sort()#排序
[‘65brother‘, ‘alex‘, ‘eric‘, ‘tenglan‘]
#可通過key來指定排序
>>> name_list
[‘65brother‘, ‘alex‘, 55, ‘eric‘, ‘tenglan‘, 33, 55]
>>> name_list.sort(key=str)#通過key進行排序,詳細請用help(list.sort)
>>> name_list
[33, 55, 55, ‘65brother‘, ‘alex‘, ‘eric‘, ‘tenglan‘]
#可以實現反轉
>>> name_list.sort(reverse=True,key=str)#reverse默認值是False
>>> name_list
[‘tenglan‘, ‘eric‘, ‘alex‘, ‘65brother‘, 55, 55, 33]
元組 #是只讀的
count
>>> name = ("alex","eric",99) >>> name.count(99)#統計1
index
>>> name = ("alex","eric",99) >>> name.index(99)#索引2
條件
條件判斷if...else
縮進為4個空格,或者是一個TAB
if...else
>>> a = 10
>>> b = 20
>>> if a < b:
print("YES")
else:
print("NO")
YES
三元運算
>>> a = 10
>>> b = 20
>>> num = a if 1<2 else b#條件為真,值為a
>>> num
>>>num = a if 1>2 else b#條件為假,值為b
>>> num
# 將以下代碼轉換成三元運算
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
print(small)
#轉換後
small = x if ((x < y) and (z < x)) else(y if y < z else z)
print(small)
For循環:
>>> name_list = [‘a‘,‘b‘,‘c‘]
>>> for ele in name_list:
if ele == ‘a‘:
print(‘a‘)
continue
if ele == ‘b‘:
print(‘b‘)
break
a
b
While 循環:
While 條件:#條件為真執行
While True:#切記,容易進入死循環哦!
簡單文件操作
打開文件:
f= open("文件路徑",“模式”)
打開模式有:
r,只讀方式打開
w,打開一個文件只用於寫入。如果文件存在則將覆蓋原文件,如果該文件不存在,創建文件。
a ,打開一個文件用於追加。如果該文件已存在,指針指向文件結尾,新內容寫到文件後。如果文件不存在,創建文件。
w+ , 打開一個文件用於寫讀,如果文件存在將覆蓋文件裏的內容。如果文件不存在,創建文件並寫人內容。
r+ , 打開一個文件用於讀寫,可修改文件內容。
文件讀取:
f.read() #讀取所有內容到內存
f.readlines()#讀取所有內容到內存,並按換行符分割成列表。
寫文件:
f.write("內容")
f.writeline()
關閉文件:
f.close()
Python學習第一天