函数
函数关键字
关键字是python内置的,是具有特殊意义的表示符,调用其后不需要加()。
函数的定义
函数可以通过函数def来定义,这一关键字后跟一个函数的标识符名称,再跟一对圆括号,其中可以包括一些变量的名称,再以冒号结尾,结束这一行。随后而来的语句块是函数的一部分。
下面打印一个问候语的简单函数:
def greet_user():
"""显示简单的问候语"""
print("Hello!")
greet_user()
结果如下:
函数参数与作用域
形式参数
在定义函数时,函数名后面括号中的变量名称叫做形参。
实际参数
在调用函数时,函数名后面括号中的变量名称叫做实参。
默认参数
定义函数时,指定参数的值,在调用函数时,如果没有传入或改变默认参数的值,即使用默认参数。如果不需要改变默认参数,不用传入默认参数;需要改变默认参数时,传入默认参数即可。
可变参数
传入的参数个数可变,可以为0到任意个,在参数前加’*'实现可变参数。可变参数在函数调用时自动组装为一个tuple。在列表和元组前加,可将列表或元组中的元素变为参数传入函数。
位置实参
调用函数时,python必须将函数调用中的每个实参都关联到函数定义中的一个形参。因此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
显示宠物信息的函数,函数指出一个宠物属于哪种动物以及它叫什么名字:
def describe_pet(animal_type,pet_name):
"""显示宠物的信息"""
print("\nI have a "+animal_type+".")
print("My "+animal_type+"'s name is "+pet_name.title()+".")
describe_pet('hamster','harry')
结果如下:
关键字实参
传递给函数的名称-值对。关键字实参可无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
def describe_pet(animal_type,pet_name):
"""显示宠物的信息"""
print("\nI have a "+animal_type+".")
print("My "+animal_type+"'s name is "+pet_name.title()+".")
describe_pet(animal_type='hamster',pet_name='harry')
结果如下:
函数返回值
在函数中,可使用return语句将值返回到调用函数的代码行。返回值能够将程序中大部分繁重工作移到函数中去完成,从而简化主程序。
返回简单值
下面一个函数,它接受名和姓并返回整洁的姓名:
def get_formatted_name(first_name,last_name):
"""返回整洁的姓名"""
full_name=first_name+' '+last_name
return full_name.title()
musician=get_formatted_name('jimi','hendrix')
print(musician)
结果如下:
返回字典
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。
下面的函数接受姓名的组成部分,并返回一个表示人的字典:
def build_person(first_name,last_name):
"""返回一个字典,其中包含有关一个人的信息"""
person={'first':first_name,'last':last_name}
return person
musician=build_person('jimi','hendrix')
print(musician)
结果如下:
file
打开文件方式
读取整个文件
要读取文件,需要一个包含几行文本的文件。
下面首先来创建一个文件,它包含精确到小数点后30位的圆周率,且在小数点后每10位处都换行:
pi_digits.txt
3.1415926535
8979323846
2643383279
将该文件保存到本章程序所在的目录中。
使用方法read()读取这个文件的全部内容,并将其作为一个长长的字符串存储在变量contents中。
下面的程序打开并读取这个文件,再将其内容显示到屏幕上:
with open('pi_digits.txt')as file_object:
contents=file_object.read()
print(contents)
结果如下:
逐行读取
要以每次一行的方式检查文件,可对文件对象使用for循环:
filename='pi_digits.txt'
with open(filename)as file_object:
for line in file_object:
print(line)
结果如下:
使用文件中的内容
创建一个字符串,它包含文件中存储的所有数字,且没有任何空格:
filename='pi_digits.txt'
with open(filename)as file_object:
lines=file_object.readlines()
pi_string=''
for line in lines:
pi_string+=line.rstrip()
print(pi_string)
print(len(pi_string))
结果如下:
注:读取文本文件时,Python将其中的所有文本都解读为字符串。如果你读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转换为浮点数。
写入文件
写入空文件
要将文本写入文件,你在调用 open()时需要提供另一个实参,告诉Python你要写入打开的文件。
下面将一条简单的信息存储到文件中,而不是将其打印到屏幕上:
filename='programming.txt'
with open(filename,'w')as file_object:
file_object.write("I love programming.")
这个程序没有终端输出,打开文件programming.txt,将看到其中包含:
注意:Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。
文件对象的操作方法
对excel及csv文件进行操作
csv文件操作
打开CSV
需要提前导入CSV函数包— import csv
打开csv: csv_file=open(file_name[, access_mode])
首先建立一个csv文件:
学号 年龄 性别
1 20 0
2 17 1
3 18 1
4 21 0
然后执行代码:
import csv
csvfile = open('student.csv', encoding = 'utf-8')
data = csv.reader(csvfile) #data 返回内存地址
for line in data:
print (line)
结果如下:
读取CSV
读取csv: csv_file=csv.reader(csvfile);pandas.read_csv(file_name)[导入pandas库](读取后返回的是文件的内存地址)
import pandas as pd
pandas.read_csv('student.csv')
写入CSV
实例化一个write对象: csv_writer = write(csv_file)
利用writerow函数写入: csv_writer.writerow(“new_information”)
代码如下:
import csv
stu_new1 = [5,25,1]
stu_new2 = [6,23,0]
csvfile = open('student.csv','a', newline='')
csv_write = csv.writer(csvfile)
csv_write.writerow(stu_new1)
csv_write.writerow(stu_new2)
结果如下:
可参考:https://blog.csdn.net/Winterto1990/article/details/47667941
Excel文件操作
利用xlrd库处理excel文件
利用xlwt库处理excel文件
可参考:https://blog.csdn.net/qq_30990097/article/details/80853008
os模块
os模块是python的内置模块,是一个可以访问操作系统的模块
可参考:https://blog.csdn.net/xxlovesht/article/details/80913193