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
Hello, Python!
另外一種方式執行Python腳本,修改後的test.py文件:
#!/usr/bin/python
print "Hello, Python!"程序員
運行程序:shell
#./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
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 ''''
程序的下面一行顯示的提示,按回車鍵退出,等待用戶按下回車鍵:
#!/usr/bin/python
raw_input("Press the enter key to exit.")
一旦用戶按下鍵時,程序結束。這是一個很好的技巧,保持一個交互式對話,直到用戶完成應用程序運行。
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)調用。模塊能夠包含直接運行的代碼塊、類定義、 函數定義或這幾者的組合。後面咱們會有專門的模塊講解