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"  )
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章