title: python入門
文章目錄
- title: python入門
- 一、變數
- 二、輸出
- 三、字串處理的常用方法
- 四、串列
- 五、元組、字典和迭代
- 六、if選擇
- 七、例外
- try/except陳述句
- 八、函式
- 九、For回圈
- 十、檔案
- 十一、匯入模塊
- 十二、sys模塊
- 十三、os模塊
- 十四、多執行緒
- 十六、Optparse模塊
一、變數
- Python中的變數不需要宣告,可以直接通過賦值來創建變數,變數賦值通過“=”實作
- 變數賦值時應該注意資料型別,
- 可以同時為多個變數賦值,但變數與數值的個數必須相等們之間用逗號隔開,
- 變數名盡量具有現實意義,不能使用系統保留的關鍵字作為變數變數名,
二、輸出
-
print陳述句可以同時輸出多個元素,元素之間用逗號","隔開,print遇到逗號會輸出一個空格,
-
如果希望輸出的內容之間沒有空格,可以把他作為字串連接在一起,此時資料型別必須保持一致,
1、str(prots)強制轉為為字符型,
2、+:必須是相同的型別, -
print陳述句在輸出的內容后面會自動加上一個換行符號\n,如果在輸出的內容后面跟上逗號,換行就取消了,
三、字串處理的常用方法
在Python中一切皆物件,每個字串都是一個物件,
-
使用dir可以查看物件的使用方法,
-
使用help命令可以查看某個方法的幫助資訊,
-
split方法
將字串根據某個分隔符今次那個分割,分割之后得到一個串列,
c.split(".") -
in
in不是一個方法,是一個陳述句
true or false
site="www.baidu.com"
web="baidu"
web in site //看看web字串在不在site字串里面,
"baidu" in "www.baidu.com"
- strip()方法
去除字串頭尾指定的字符,如果不指定,默認去除空格以及回車、換行等空白字符,
>>> web="www.baidu.com"
>>> web.strip(".com")
'www.baidu'
>>> web.strip("www.")
'baidu.com'
- upper()、lower()方法
upper()方法可以將字串轉換成大寫形成,
lower()方法可以將字串轉換成小寫形成,
>>> web="wWW.BaiDU.Com"
>>> web.upper()
`WWW.BAIDU.COM'
>>> web.lower()
'www.baidu.com'
- center方法
使指定的字串居中顯示,兩側再加上指定數量的字符,
>>> print "welcome".center(30,'*')
***********welcome************
四、串列
- 在串列中可以集中存放多個資料,并且資料型別不必統一,串列用[]表示,
- 可以通過索引來獲取串列的指定資料,索引從0開始,
可以使用一段連續的索引,比如[0:2],這是一個左閉右開區間,他的作用就是獲取索引號是0和1的量資料,
- 在串列中可以根據元素查出其對應的索引,這成為切體,
>>> port=[21,22,80]
>>> dir(port)
>>> port.append("ssh") //在串列末尾追加ssh
>>> port.pop(3) //去除標號為3的數值
>>> port.insert(3,40) //在標號為3的位置上插入數值為40
>>> port.index(22) //查找數值為22的標號是多少
- 使用list()函式可以將一個字串轉為串列,
- 通過len()函式可以統計串列中元素的個數,
>>> ip="192.168.1.1"
>>> ip.split(".") //split以"."為分隔符分割形成一個串列
['192', '168', '1', '1']
>>> print ip.split(".")[0]+"."+ip.split(".")[1]+"."+ip.split(".")[2]+"."
192.168.1.
五、元組、字典和迭代
元組與串列相似,不同之處在于元組中的資料只能被呼叫,而不能被修改,元組用()表示,
- 如果元組中只有一個元素,那么在元素的后面必須加上逗號,
字典的優點是具有極快的查找速度,字典使用{}定義,
- 字典使用鍵-值(key-value)的形式存盤,每一對鍵值成為一個項,
- 字典中的每一個鍵和它的值都是以冒號分割,同時用逗號分割兩個項,
- 字典使用key來參考字典中某個鍵所對應的值,
>>> services={"ftp":21,"ssh":22}
>>> services
{'ftp': 21, 'ssh': 22}
>>> services["ssh"]
22
>>> services.keys()
['ftp', 'ssh']
>>> services.has_key("ssh")
True
>>> services["smtp"]=25 //修改或者添加
>>> services
{'ftp': 21, 'smtp': 25, 'ssh': 22}
通過for回圈可以遍歷串列、元組或是字典中的值,這種遍歷就成為迭代,
遍歷串列
>>> port=[21,11,80]
>>> for i in port:
... print i,
...
21 11 80
遍歷元組同串列,
遍歷字典
>>> services
{'ftp': 21, 'smtp': 25, 'ssh': 22}
>>> for key in services:
... print key
...
ftp
smtp
ssh
在遍歷字典的時候默認只能顯示字典中的鍵,要想遍歷鍵和值需要下面的,
>>> for key in services:
... print key+":"+str(services[key])
...
ftp:21
smtp:25
ssh:22
六、if選擇
- if陳述句的語法格式
if True: //python區分大小寫
print "OK"
else:
print "NO"
- 冒號不能漏掉,縮進必須統一
- 所有的python合法的運算式都可以作為條件運算式,只要運算式的值不是False、0、空值,python的解釋器都可以認為與True等價,
#!/usr/bin/env python
#coding:utf-8
if True:
print "ok"
else:
print "no"
print "hello!
七、例外
- 程式運行程序中難免會出現錯誤,當python檢測到錯誤時,解釋器就無法繼續執行下去,于是拋出相應的資訊,這些統稱為例外資訊,
syntaxError:invalidn syntax //語法錯誤
- 合理的使用例外處理可以使得程式更加健壯,具有很強的容錯性,不會因為用戶的不小心的錯誤輸入或其他運行時原因而總成程式終止,也可以使用例外處理結構為用戶提供更加友好的提示,
try/except陳述句
- try子句中的代碼塊包含可能會引發例外的陳述句,而except子句用來捕捉相應的例外,
- 程式執行時,如果try子句中沒有例外發生,那么except子句在try陳述句執行之后被忽略;如果try子句中有例外發生,那么該部分的其他陳述句將被忽略,直接跳到except部分,執行其后面的子句,
精確顯示錯誤
except Exception,e:
print e
出錯就pass掉,不顯示,
except:
pass
八、函式
- 函式提供了高效的可重用代碼塊
- 根據各自特定的作用,將程式分割成互相獨立的函式是一個良好的編程式習慣,這樣便于代碼重用,并使程式更易于閱讀,
- 通過def陳述句定義函式,函式中的內容必須縮進,return用于把函式的結果回傳,如果沒有return陳述句,函式執行后也會回傳結果,指示結果為None,return None可以簡寫為return,
- 每一個后綴為.py檔案都會被視作一個python模塊,可以被其他的python程式呼叫,
每個python腳本在運行的時候都有一個—__name__屬性,通過它可以識別程式的使用方式,即程式在作為模塊匯入還是獨立運行,如果程式是作為模塊被匯入,那么__name__屬性的值就被自動設定為模塊名;如果是作為腳本獨立使用,那么_name_屬性的值會被自動設定為字串"__main__",
第一種方式:
if __name_=="__main__"
當前程式是不是獨立運行的,
第二種方式:
def main():
程式
if __name_=="__main_"
main()
九、For回圈
1、串列
>>> for i in [1,2,3]:
... print i
...
1
2
3
2、通過range()函式生成連續數列
>>> for i in range(1,5):
... print i,
...
1 2 3 4
>>>
range(初始值,終止值,步長),range得到的是一個左閉右開區間,
>>> range(1,10) //默認步長為1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,9,2)
[1, 3, 5, 7]
>>>
十、檔案
-
1、檔案操作的基本流程
1、呼叫open()函式打開檔案,并創建一個File物件,
2、呼叫File物件的read()或write()等方法,對檔案內容進行讀寫等操作,
3、呼叫File物件的close()方法,關閉并保存檔案內容, -
open()函式
1、通過open()函式以指定模式打開檔案并創建檔案物件:
檔案物件=open('檔案路徑','模式')
2、檔案打開模式主要包括:
r只只讀模式
w只寫模式
a追加模式
3 如果傳遞給open()的檔案名不存在,寫模式和追加模式都會創建一個新的空檔案,
- 讀取檔案
1、read()可以一次性的讀取檔案所有內容,也可以讀取指定的前幾個位元組的資料,
f.raed()
f.read(12)
2、readline()方法可以從檔案中讀取一行并作為結果回傳
f.readline()
3、readlines()方法讀取檔案,回傳一個串列,檔案的每一行作為串列的一個元素:
- 通過字串的strip()方法將檔案中每行末尾的\n去除,
十一、匯入模塊
- 模塊也叫庫,每個模塊中都內置了大量的功能,函式、類和變數,它就像積木,可以根據需要進行呼叫組合,
- 模塊就是程式,每個模塊就是一個后綴為.py的Python的程式,
- Python的模塊分布為標準模塊和第三方模塊,標準模塊是Python內置的,第三方模塊需要安裝之后才能使用,
- 可以通過help命令了解每個模塊的基本幫助資訊,如:help(‘sys’)
1、模塊匯入方法:
a、直接呼叫模塊:import 模塊名
b、從模塊中呼叫某個函式:from 模塊名 import 函式名
2、eg:
import os
form os import * //os里面的所有函式
form os import system //直接呼叫system()方法,
十二、sys模塊
- sys是一個標準模塊,與python解釋器密切相關
- sys.argv
1、sys.argv是一個變數,專門用來向python解釋器傳遞引數,類似于shell腳本編程中的位置變數,
#!/usr/bin/env python
#coding:utf-8
import sys
print "腳本檔案你是:",sys.argv[0]
print "用戶輸入的引數數量:",len(sys.argv)-1
print "所有的引數:",sys.argv
print "用戶輸入的第一個引數:",sys.argv[1]
print "用戶輸入的第二個引數:",sys.argv[2]
print "用戶輸入的第三個引數:",sys.argv[3]
運行結果:
腳本檔案你是: ./sys.py
用戶輸入的引數數量: 3
所有的引數: ['./sys.py', 'me', 'you', 'he']
用戶輸入的第一個引數: me
用戶輸入的第二個引數: you
用戶輸入的第三個引數: he
- sys.exit()
1、sys.exit()是一個方法,作用是退出當前程式
sys.exit(),退出當前程式,并回傳systemExit例外
sys.exit(0),正常退出
sys.exit("退出程式"),顯示一段提示資訊,
if len(sys.argv) != 2:
print "正確使用方法:"+sys.argv[0] + "IP串列檔案"
print "例如:./sys.py /root/ip.txt"
sys.exit()
十三、os模塊
- os模塊提供了訪問作業系統服務的功能,
- 它最常用的是os.system()方法,可以在Python中使用作業系統命令,
1、os.system("ls /root")
2、os.path.isfile()方法,判斷指定的物件是否為檔案,回傳True或False,
os.path.isfile("/root/pass.txt")
3、os.path.isdir()方法,判斷指定的物件是否為目錄
4、os.path.exists()方法,判斷指定的物件是否存在
十四、多執行緒
- 行程是執行緒的容器,執行緒是作業系統調度和分配處理器時間的基本單位,負責執行包括在行程地址空間中的代碼,
- 當行程被創建時,作業系統會自動為之創建一個執行緒,稱為主執行緒,主執行緒會更具需要動態創建其他子執行緒,
- 通過threading模塊中的Thread()類可以創建和管理執行緒物件
t=threading.Thread(target=需要執行的函式,args=(向函式傳遞的引數))
t.start() 執行
十六、Optparse模塊
- 利用該模塊可以設定選項,通過選項向腳本傳遞所需要的引數
- %prog表示當前腳本的檔案名
- 每個程式都是自帶有-h選項
#!/usr/bin/env python
#coding:utf-8
from optparse import OptionParser
usage="Usage:%prog -f <filename> -i <ip address>"
parser=OptionParser(usage=usage )
parser.add_option("-f","--file",type="string",dest="filename", help="IP file") //選項
parser.add_option("-i","--ip",type="string",dest="address",help="IP address")
(options,args)=parser.parse_args() //固定格式,parse_args()方法獲取定義的選項和引數
print options.filename
print options.address
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290772.html
標籤:其他
