Python自動化運維開發實戰 2、Python基本用法

導語:

Python編程博大精深,知識點衆多,須要先總體上了解python的一些基本用法以後再去對每個知識點細細研究,這樣學習的速度會快不少。因此下面就先看一些python事先須要知道的基本知識。php

交互模式編程:

所謂交互就是跟用戶也就是咱們使用python的人交互,你給出指令或代碼,python解釋器給出結果。
調用解釋器不通過腳本文件做爲參數,顯示如下提示:css

# python Python 2.7.10 (default, Jul 14 2015, 19:46:27) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
鍵入下列文字在Python提示符,而後按Enter鍵:
>>> print "Hello, Python!" #python2.0 >>> print ("Hello, Python!") #python3.0 Hello, Python! 

強烈推薦使用ipython,其安裝方式見:http://blog.51cto.com/fklinux/2046741python

腳本模式編程:

所謂腳本編程,即把python指令或代碼寫入文本文件當中,再給這些指令指定一個命令解釋器,這個文件文件就是python腳本了。
好比:寫入以下代碼在一個test.py文件linux

print "Hello, Python!"

運行程序:nginx

python test.py

Hello, Python!

另外一種方式執行Python腳本,修改後的test.py文件:
#!/usr/bin/python
print "Hello, Python!"程序員

運行程序:shell

chmod +x test.py

#./test.py Hello, Python!

腳本模式編程中使用中文

python默認使用ascii碼,不支持中文,使用中文須要聲明支持中文的字符集,通常是utf8,方式以下:express

#!/usr/bin/python #coding=utf8 #encoding:utf-8 #_*_ coding:utf-8 _*_ print "你好中國!"

上面3種方式均可以
爲何有這麼多寫法?
python是按正則的方式檢測你的字符集定義裏面有沒有他想要看到的東西,只要符合下面的正則便可:編程

coding[:=]\s*([-\w.]+)
[root@wing python]# cat a.py #!/usr/bin/env python #fdsf coding=utf8 fdaf 好比這裏的fdsf fdaf是我隨便亂寫的 只要裏面有coding utf8 等等就能夠 print "中國你好"

注:python3中已經能夠直接支持中文,不須要專門指定支持中文的字符集vim

Python標識符:

1. 用來標識一個變量,函數,類,模塊或其餘對象的名稱。 2. 一個標識符開始以字母A到Z或a到z後跟零個或多個字母下劃線(_)和數字(0〜9),Python標識符內不容許標點符號,如@、$、%等。 3. Python區分大小寫。

標識符命名約定:

• 類名以大寫字母以及全部其它標識符以小寫字母。
• 開頭單個前導下劃線的標識符表示由該標識符約定的意思是私有的。
• 開頭兩個前導下劃線的標識符表示一個強烈的私有的標識符。
• 若是標識符末尾還具備兩個下劃線結束時,該標識符是一個語言定義的特殊名稱。

避免用下劃線做爲變量名的開始:

由於下劃線對解釋器有特殊意義,並且是內建標識符所使用的符號,建議程序員避免用下劃線做爲變量名的開始。
通常來說,變量名'_xxx' 被看做是「私有的」,在模塊或類外不可使用。 當變量是私有的時候,用_xxx 來表示變量是很好的習慣。 由於變量名__xxx__對 Python 來講有特殊含義,對於普通的變量應當避免這種命名風格

保留字:

保留字不能夠被用做常量或變量,或任何其它標識符。全部Python關鍵字只包含小寫字母。
查詢當前版本python中全部關鍵字:

>> import keyword #若是系統中沒有這個模塊,須要安裝python-docs
>> keyword.kwlist
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

判斷是否爲關鍵字:

>> keyword.iskeyword ('False')
此時將返回True

行和縮進:

學習Python時,遇到的第一個須要注意的地方是,不使用括號來表示代碼的類和函數定義塊或流程控制。代碼塊是由行縮進,這是嚴格執行表示方式。
縮進位的數目是可變的,可是在塊中的全部語句必須縮進相同的量。在這個例子中,兩個功能塊都很好使用:

if True: print "True" else: print "False"

在本例中的第二塊將產生一個錯誤:

if True: print "Answer" print "True" else: print "Answer" print "False"

所以,在Python中全部的連續線縮進的空格數一樣的會結成塊。

多行語句:

Python語句一般用一個新行結束。 可是,Python容許使用續行字符()來表示,該行應該繼續下去(跨行)。

例如:

total = (item_one + 
                item_two + 
                item_three)

包含在[],{}或()括號內的陳述並不須要使用續行符。
例如:

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

可使用三引號"""或'''來打印多行語句,寫什麼格式就打印什麼格式。
好比:

print('''hello this is a test 多行語句''')

打印結果以下:

hello this is a test 多行語句

繼續符( \ ):

Python 語句,通常使用換行分隔,也就是說一行一個語句。一行過長的語句可使用反斜 槓( \ ) 分解成幾行,好比:

if (weather_is_hot == 1) and \ (shark_warnings == 0): send_goto_beach_mesg_to_pager()

引號:

Python可使用單引號('),雙引號(「)和三('''或」」」)引號,以表示字符串常量,只要是同一類型的引號開始和結束的字符串。三重引號能夠用於跨越多個行的字符串。
例如:

word = 'word' sentence = "This is a sentence." paragraph = """This is a paragraph. It is made up of multiple lines and sentences."""

註釋:

單行註釋:
一個井號(#),「#」號以後字符到本行結束都是註釋,Python解釋器會忽略它們。好比:

#!/usr/bin/python # First comment print "Hello, Python!" # second comment 運行結果: Hello, Python!

使用三引號完成多行註釋:

''' comment1 comment2 ''''

等待用戶:

方式1:raw_input()

程序的下面一行顯示的提示,按回車鍵退出,等待用戶按下回車鍵:
#!/usr/bin/python
raw_input("Press the enter key to exit.")
一旦用戶按下鍵時,程序結束。這是一個很好的技巧,保持一個交互式對話,直到用戶完成應用程序運行。

方式2:input()

上面兩種等待用戶輸入的方式區別是:

raw_input不解釋用戶輸入
input會解釋用戶的輸入

在一行中多個語句:

分號( ; ) 容許在單行寫入多條語句,無論語句是否啓動一個新的代碼塊。下面是使用分號示例:
import sys; x = 'foo'; sys.stdout.write(x + '')

多個語句組做爲套件:

一組單獨的語句, 在Python單一的代碼塊被稱爲序列。複雜的語句,如if, while, def, and class,那些須要一個標題行和套件。
標題行開始與聲明(關鍵字),並終止與冒號(:),接着是一個或多個線構成該套件。例如:

if expression : suite elif expression : suite else : suite

命令行參數:

不少程序能夠運行,它們提供有關如何運行的一些基本信息。 Python中可使用 -h 作到這一
點:

$ python -h
        usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
        Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]

你也能夠設定你的腳本,它應該以這樣的方式接受各類選項

若是想對python腳本傳參數,須要模塊:sys

參數個數:len(sys.argv) 腳本名:    sys.argv[0] 參數1:     sys.argv[1] 參數2:     sys.argv[2]
#vim test.py import sys print 「腳本名:」,sys.argv[0] for i in range(1,len(sys.argv)): print 「參數」,i,sys.argv[i] #python test.py hello world 腳本名:test.py 參數 1 hello 參數 2 world

模塊

每個 Python 腳本文件均可以被當成是一個模塊。模塊以磁盤文件的形式存在。當一個模塊變得過大,而且驅動了太多功能的話,就應該考慮拆一些代碼出來另外建一個模塊。模塊裏的代碼能夠是一段直接執行的腳本,也能夠是一堆相似庫函數的代碼,從而能夠被別的模塊導入(import)調用。模塊能夠包含直接運行的代碼塊、類定義、 函數定義或這幾者的組合。後面咱們會有專門的模塊講解

相關文章
相關標籤/搜索