任务:
1.函数关键字
2.函数的定义
3.函数参数与作用域
4.函数返回值
5.file
打开文件方式(读写两种方式)
文件对象的操作方法
学习对excel及csv文件进行操作
6.os模块
一、函数的关键字
关键字是python内置的,具有特殊意义的标识符,自定义标识符命名时不可与之重复。
可通过以下代码查看python内置的关键字内容:
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',
'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',
'raise', 'return', 'try', 'while', 'with', 'yield']
二、函数的定义
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
三、函数的参数和作用域
参数:
https://zhuanlan.zhihu.com/p/29910063
https://www.runoob.com/python/python-functions.html
作用域:
局部作用域:函数中定义的变量
嵌套的父级函数的局部作用域:包含此函数的上级函数的局部作用域,但是不是全局的
全局作用域:模块级别定义的变量
内置作用域:系统固定模块里边的变量
四、函数返回值
return返回的是函数的输出,可以用变量接走,继续使用该返回值做其他事。print仅仅打印在控制台。
return语句的作用:结束函数调用、返回值。
在Python的函数中都有一个返回值,默认为None。也可以使用return value语句来定义一个且只能定义一个可为任意类型的返回值。但是我们能够返回一个序列类型的对象,来实现返回多个值的效果。
很多初学者会混淆两者间的区别,总的来说:return返回值并结束函数,而print仅仅是打印输出。
return:调用函数后,return将 0 返回并赋值给value1,同时结束函数。所以只能返回 0 。
print :循环将 0 1 2 全部打印出来,但是因为函数没有return语句定义的返回值,所以返回默认None并赋值给value2 。
五、file
1、打开文件的方式
with open('data.txt', 'r') as f:
data = f.read()
print('context: {}'.format(data))
open() 接收一个文件名和一个模式作为它的参数,r 表示以只读模式打开文件。想要往文件中写数据的话,则用w 作为参数。
with open('data.txt', 'w') as f:
data = 'some data to be written to the file'
f.write(data)
2、文件对象的操作方法
3、 学习对excel及csv文件进行操作
https://www.cnblogs.com/cnkemi/p/8671493.html
import csv
#读取csv文件内容方法1
csv_file = csv.reader(open('testdata.csv','r'))
next(csv_file, None) #skip the headers
for user in csv_file:
print(user)
#读取csv文件内容方法2
with open('testdata.csv', 'r') as csv_file:
reader = csv.reader(csv_file)
next(csv_file, None)
for user in reader:
print(user)
#从字典写入csv文件
dic = {'fengju':25, 'wuxia':26}
csv_file = open('testdata1.csv', 'w', newline='')
writer = csv.writer(csv_file)
for key in dic:
writer.writerow([key, dic[key]])
csv_file.close() #close CSV file
csv_file1 = csv.reader(open('testdata1.csv','r'))
for user in csv_file1:
1 import xlrd, xlwt #xlwt只能写入xls文件
2
3 #读取xlsx文件内容
4 rows = [] #create an empty list to store rows
5 book = xlrd.open_workbook('testdata.xlsx') #open the Excel spreadsheet as workbook
6 sheet = book.sheet_by_index(0) #get the first sheet
7 for user in range(1, sheet.nrows): #iterate 1 to maxrows
8 rows.append(list(sheet.row_values(user, 0, sheet.ncols))) #iterate through the sheet and get data from rows in list
9 print(rows)
10
11 #写入xls文件
12 rows1 = [['Name', 'Age'],['fengju', '26'],['wuxia', '25']]
13 book1 = xlwt.Workbook() #create new book1 excle
14 sheet1 = book1.add_sheet('user') #create new sheet
15 for i in range(0, 3):
16 for j in range(0, len(rows1[i])):
17 sheet1.write(i, j, rows1[i][j])
18 book1.save('testdata1.xls') #sava as testdata1.xls
六、os模块
https://www.cnblogs.com/yufeihlf/p/6179547.html
getcwd():返回当前工作目录
chdir(path):改变工作目录
listdir(path=’.’):列举指定目录中的文件名(’.‘表示当前目录,’…'表示上一级目录)
mkdir(path)创建单层目录,如该目录已存在抛出异常
makedirs(path)递归创建多层目录,如该目录已存在抛出异常
remove(path)删除文件
rmdir(path)删除单层目录,如该目录非空则抛出异常
removedirs(path)递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
rename(old, new)将文件old重命名为new
system(command)运行系统的shell命令
walk(top)遍历top路径以下所有的子目录,返回一个三元组