Python學習筆記(三)--Python函數

Python函數

一、語法:

def functionname( parameters ):
   "函數_文檔字符串"
   function_suite
   return [expression]

二、參數傳遞:

1、在 python 中,類型屬於對象,變量是沒有類型的。
2、python 函數的參數傳遞:
在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

不可變類型:類似 c++ 的值傳遞,如 整數、字符串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a 本身。

def ChangeInt( a ):
    a = 4
    print "函數內取值",b    #輸出結果: 4
    return

b = 1
ChangeInt(b)
print "函數內取值",b        #輸出結果: 1

可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(b),則是將 b 真正的傳過去,修改後 fun 外部的 b 也會受影響。

def changelist( list ):
   "修改傳入的列表"
   list.append([1,2,3,4]);
   print "函數內取值: ", list     #輸出結果: [10, 20, 30, [1, 2, 3, 4]]
   return

# 調用changelist函數
list = [10,20,30];
changelist( list );
print "函數外取值: ", list       #輸出結果: [10, 20, 30, [1, 2, 3, 4]]

附:
append() 方法用於在列表末尾添加新的對象。
語法: list.append(obj)

三、參數

1、必備參數須以正確的順序傳入函數,如調用上述 changelist() 函數,必須傳入一個參數,不然會出現語法錯誤。
2、缺省參數:調用函數時,缺省參數的值如果沒有傳入,則被認爲是默認值。

四、全局變量和局部變量

局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序範圍內訪問。
全局變量想作用於函數內,在變量前加 global,實現在函數內部改變變量值。

globvar = 0

def set_globvar():
    global globvar                  # 使用 global 聲明全局變量
    globvar = 1

Python文件I/O

一、讀取鍵盤輸入

1、raw_input([prompt]) 函數

從標準輸入讀取一個行,並返回一個字符串(去掉結尾的換行符):

str = raw_input("請輸入字符串:");

2、input([prompt]) 函數

和 raw_input([prompt]) 函數類似,但是 input 可以接收一個Python表達式作爲輸入,並將運算結果返回。

str = input("請輸入:");
print "輸入的內容是: ", str

結果:

請輸入:[x*5 for x in range(2,10,2)]
輸入的內容是:  [10, 20, 30, 40]

二、打開和關閉文件

Python 提供了必要的函數和方法進行默認情況下的文件基本操作。可以用 file 對象做大部分的文件操作。

1、open 函數

先用Python內置的open()函數打開一個文件,創建一個file對象,相關的方法纔可以調用它進行讀寫。
語法:

file object = open(file_name [, access_mode][, buffering])

附:File對象的屬性

fo = open("test.txt", "wb")
print "文件名: ", fo.name
print "是否已關閉 : ", fo.closed
print "訪問模式 : ", fo.mode

2、close()方法

File 對象的 close()方法刷新緩衝區裏任何還沒寫入的信息,並關閉該文件,這之後便不能再進行寫入。
當一個文件對象的引用被重新指定給另一個文件時,Python 會關閉之前的文件。

fo = open("test.txt", "wb")
print "文件名: ", fo.name 

fo.close()

三、write()、read()方法

write()方法可將任何字符串寫入一個打開的文件。
read()方法從一個打開的文件中讀取一個字符串。

# 打開一個文件
fo = open("test.txt", "wb")
fo.write( "www.runoob.com!\nVery good site!\n");
str = fo.read(10);
print "讀取的字符串是 : ", str

# 關閉打開的文件
fo.close()

四、重命名、刪除文件及文件目錄

Python的os模塊提供了幫你執行文件處理操作的方法。

import os       #必須先導入os模塊,然後纔可以調用相關的各種功能

# 重命名已存在文件test1.txt到test2.txt
os.rename( "test1.txt", "test2.txt" )

# 刪除一個已經存在的文件test2.txt
os.remove("test2.txt")

#在當前目錄下創建一個新目錄test。
os.mkdir("test")

# 將當前目錄改爲"/home/anngic"
os.chdir("/home/anngic")

# 顯示當前的目錄
print os.getcwd()

# 刪除”/tmp/test”目錄
os.rmdir( "/tmp/test"  )
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章