CrazyWing:Python自動化運維開發實戰 二、Python基本用法

導語:

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

交互模式編程:

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

# 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,其安裝方式見:https://blog.51cto.com/fklinux/2046741

腳本模式編程:

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

print "Hello, Python!"

運行程序:

python test.py

Hello, Python!

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

運行程序:

chmod +x test.py

#./test.py
Hello, Python!

腳本模式編程中使用中文

python默認使用ascii碼,不支持中文,使用中文需要聲明支持中文的字符集,一般是utf8,方式如下:

#!/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中已經可以直接支持中文,不需要專門指定支持中文的字符集

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)調用。模塊可以包含直接運行的代碼塊、類定義、 函數定義或這幾者的組合。
後面我們會有專門的模塊講解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章