Python 2.7 學習筆記 基本語法和函數定義


本文介紹下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語句是遍歷元組中的元素,這里獲得的就是傳入的各個參數值。

很顯然,一個函數只能有一個變參,且必須位於最后一個參數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM