本文介紹下python的基本語法
一、變量定義
不需要說明類型,也不需要像js等腳本語言使用var等標識符。直接聲明即可,如:
num=1
說明:上面語句聲明了一個變量num,並在聲明時初始化值為 1
二、常量
同其它語言類似。注意字符串常量既可以用單引號,也可以用雙引號擴起。
注意None是python中的一個內置常量,代表什么也沒有,可以給一個變量賦值為None,表示該變量什么值也沒有。
三、布爾值
在python中,下面的值作為布爾表達式時,都會被解釋成假(false):
True , None , 0 , "" , '' , () , [] , {}
其它值都會被解釋成真。
注意 : 常量布爾值 是 True(真) 和False(假),是區分大小寫的,第一個字母大小。
a =false 會把false當作一個變量,如果false沒定義會報語法錯誤。
舉例:
>>> if 'hello': ... print True ... else: ... print False ... True >>> if '': ... print True ... else: ... print False ... False >>> if 1: ... print True ... else: ... print False ... True
四、字符串
1、字符串連接用 + 號
2、長字符串,如果一個字符串很長,需要多行,可以用 三個單引號括起來,如:
舉例,在交互式下的輸入
>>> str='''hello, ... i am jame, ... where are you?''' >>> print str hello, i am jame, where are you? >>>
在腳本文件中
xxx@ubuntu:~$ more test.py x='''hello, i am jame, where are you?''' print x xxx@ubuntu:~$ python test.py hello, i am jame, where are you? xqh@ubuntu:~$
在python中,不能直接將字符串與數字通過 + 連接,python不會自動將數字轉字符串,會報錯。在python中,字符串和數字的相互轉換方式是:
string-->int
1)、10進制string轉化為int
int('12')
2)、16進制string轉化為int
int('12', 16)
int-->string
1)、int轉化為10進制string
str(18)
2)、int轉化為16進制string
hex(18)
五、運算符
1、布爾運算符
與java,js等語言不同。python中的 與,或,非 運算符不是 && , || 和 !,而是用單詞 and , or 和 not表示,如:
>>> a=False >>> not a True >>> a and True False >>> a or True True
六、輸入和輸出
利用 print方法可以將信息輸出到屏幕上。
利用 raw_input() 可以從屏蔽輸入信息,如:
>>> msg="hello," >>> msg+=raw_input("please input your name:") please input your name:tom >>> print msg hello,tom >>>
注意,與 input()方法的區別,input方法會假設用戶輸入的是合法的python表達式,而不會把它當作字符串。
如上面的例子,如果用的是 input,則輸入時一定要輸入 "tom", 要帶雙引號,否則就會把tom當作變量處理,而如果沒定義,則會報語法錯誤。
這里舉個例子:
>>> print input("please input:") please input:3+5 8 >>> print input("please input:") please input:23+16*15 263 >>> print raw_input("please input:") please input:23+16*15 23+16*15 >>>
通過上面例子,可以很清晰的看出 input 和raw_input方法的區別了。
七、函數定義
通過def關鍵字定義函數,舉例如下:
>>> def hello(): ... print "hello" ... >>> hello() hello >>> def showMsg(msg): ... print msg ... >>> showMsg("good") good >>> def minus(a,b): ... return a-b ... >>> result = minus(10,5) >>> print result 5
函數可以有返回值,也么可以沒有,返回值通過return關鍵字指定,這和其它語言一致。
上面的例子中兩個函數showMsg和plus帶了參數,采用這種定義方式,要求調用函數時,參數傳遞的順序和定義一致。如
minus(10,5 ) 和 minus(5,10) 結果完全不一樣。
除了這種方式外,在python中,還可以提供參數的名字傳遞參數值,這樣不需要按照定義時的順序來,避免出錯,舉例如下:
>>> def calSecond(hour,minute,second): ... return hour*60*60+minute*60+second ... >>> print calSecond(1,0,10) 3610 >>> print calSecond(hour=1,second=10,minute=0) 3610
上面代碼定義了calSecond函數,先是沒有指定參數名調用(要求順序和參數定義一致),后者指定參數名調用(這對順序沒要求,但要求名字一致),兩者結果是一樣的。
定義函數時,也可以給參數指定默認值,這樣調用函數時,如果對有默認值的參數不傳入值時,則使用默認值。
>>> def show(name,color="red"): ... print name+" is " + color ... >>> show("apple") apple is red >>> show("banana","yello") banana is yello
說明:如果函數定義時參數沒有指定默認值,調用時必須要傳入值,否則會報語法錯誤。這和js等腳本語言不同。
變參定義,同其它語言一樣,python也提供了變參的功能(即傳入的參數個數不變),舉例如下:
>>> def test(name,*paras): ... print name ... for para in paras: ... print para ... >>> test("hello",10,100,1000) hello 10 100 1000 >>> test("hello","a","b") hello a b
通過*可以標記一個參數為變參,這時調用時可傳入任意數目(包括0)的值,實際在函數體內,獲得的該參數是一個元組。
關於元組的概念后續文章再介紹,上面for語句是遍歷元組中的元素,這里獲得的就是傳入的各個參數值。
很顯然,一個函數只能有一個變參,且必須位於最后一個參數。
