案例驱动式Python学习--通讯录存取
驱动案例
通讯录:要求打印出企业全部十名员工通讯录。(要求有文件相关操作)
内置函数
自定义函数
函数指被封装起来的、实现某种功能的一段代码。Python安装包、标准库中自带的函数统称为内置函数,用户自己编写的函数称为自定义函数,不管是哪种函数,其定义和调用方式都是一样的。
函数的定义
Python中使用关键字def定义函数。
def 函数名(参数列表)
函数体
[return 语句]
无参函数定义
def weather(): #无参数
print("*" * 13)
print("日期:4月8日")
print("温度:14~28℃")
print("空气状况:良")
print("*" * 13)
带参函数定义
def modify_weather(today, temp, air_quality): #有参数
print("*"*13)
print(f"日期:{today}")
print(f"温度:{temp}")
print(f"空气状况:{air_quality}")
print("*" * 13)
函数的调用
定义好的函数直到被程序调用时才会执行。函数的调用格式如下:
函数名([参数列表])
实例应用(简易计算器)
熟练地定义函数
熟练地调用函数
分析:
本实例的计算器具有最基本的加、减、乘、除 4 项功能,可实现计算两个数的和、差、积、商。因此,这里可以定义一个包含两个参数的函数,第 1 个参数接收用户输入的第 1 个数,第 2 个参数接收用户输入的第 2 个数,该函数主要实现的是加、减、乘、除 4 项功能,执行哪种功能需用户输入相应的运算符,再根据该运算符计算结果即可。
def oper(parm_one, parm_two):
operator = input('请选择要执行的运算符:+、-、*、/' + '\n')
if operator == "+":
print("计算结果为:", +parm_one + parm_two)
elif operator == "-":
print("计算结果为:", parm_one - parm_two)
elif operator == "*":
print("计算结果为:", parm_one * parm_two)
elif operator == "/":
if parm_two == 0:
print('被除数不能为 0')
else:
print("计算结果为:", parm_one / parm_two)
else:
print("输入的运算符不正确!")
while 1:
num_one = int(input('请输入第一个数:'))
num_two = int(input('请输入第二个数:'))
oper(num_one, num_two)
ch = input("是否继续运算?(输入Y或者N)")
if ch == 'N':
break
参数传递
函数的参数传递是指将实际参数传递给形式参数的过程。根据不同的传递形式,函数的参数可分为:位置参数、关键字参数、默认参数、不定长参数。
位置参数
调用函数时,编译器会将函数的实际参数按照位置顺序依次传递给形式参数。
def division(num_one, num_two):
print(num_one / num_two)
division(6, 2)
#此时6会传给num_one,2会传给num_two
关键字参数
关键字参数通过“形式参数=实际参数”的格式将实际参数与形式参数相关联,根据形参的名称进行参数传递。
def info(name, age, address):
print(f'姓名:{name}')
print(f'年龄:{age}')
print(f'地址:{address}')
info(name="李婷婷", age=23, address="山东")
默认参数
定义函数时可以指定形式参数的默认值。调用函数时,可分为以下两种情况:未给默认参数传值(使用参数的默认值)、给默认参数传值(使用实际参数的值)。
def connect(ip, port=3306):
print(f"连接地址为:{ip}")
print(f"连接端口号为:{port}")
print("连接成功")
connect('127.0.0.1') #127.0.0.1传给ip
connect(ip='127.0.0.1', port=8080) #127.0.0.1传给ip,8080传给port
不定长参数
若要传入函数中的参数的个数不确定,可以使用不定长参数。不定长参数也称可变参数,此种参数接收参数的数量可以任意改变。
def 函数名([formal_args,] *args, **kwargs):
"函数_文档字符串"
函数体
[return语句]
#*args和**kwargs都是不定长参数,它们可搭配使用,亦可单独使用
*args用法
不定长参数 * args用于接收不定数量的位置参数,调用函数时传入的所有参数被*args接收后以元组形式保存。示例:
**kwargs用法
**kwargs用于接收不定数量的关键字参数,调用函数时传入的所有参数被**kwargs接收后以字典形式保存。示例:
递归函数
python的递归算法思路与c语言相同,但python的语法更加简练。
递归的定义: 递归是一个函数过程在定义中直接调用自身的一种方法,它通常把一个大型的复杂问题层层转化为一个与原问题相似,但规模较小的问题进行求解。如果一个函数中调用了函数本身,这个函数就是递归函数。
递归求阶乘
def factorial(num):
if num == 1:
return 1
else:
return num * factorial(num - 1)
递归求斐波那契数列
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
num = int(input('请输入一个正整数: '))
for i in range(1, num + 1):
print(fibonacci(i), end=' ')
变量
变量的作用域是指变量的作用范围。根据作用范围,Python中的变量分为局部变量与全局变量。
局部变量
局部变量是在函数内定义的变量,只在定义它的函数内生效。
def use_var():
name = "xiaoke" # 局部变量
print(name) # 函数内访问
use_var()
# print(name) # 函数外访问报错 NameError: name 'name' is not defined
全局变量
全局变量是在函数外定义的变量,它在程序中任何位置都可以被访问.函数中只能访问全局变量,但不能修改全局变量。
若要在函数内部修改全局变量的值,需先在函数内使用关键字“global”进行声明。
count = 10
def use_var():
global count # 声明全局变量
count = 0 #此时count变为0
use_var()
print(count)
文件操作
计算机中的文件能够持久保存程序运行时产生的数据。
打开文件
open()函数用于打开文件,该函数调用成功会返回一个文件对象。
open(file, mode='r', encoding=None)
//file:表示待打开文件的文件名。
//encoding:表示文件的编码格式。
//mode:表示文件的打开模式。
单独使用:
搭配使用:
关闭文件
使用close()方法主动关闭不再使用的文件。
文件的读取
read()方法可以从指定文件中读取指定数据,其语法格式如下:
方式1-----文件对象.read([size])
文件对象.read([size])
//参数size表示设置的读取数据的字节数,若该参数缺省,则一次读取指定文件中的所有数据。
//例如
file.read()
方式2-----文件对象. readline()
file.readline()
//每执行一次readline()方法便会读取文件中的一行数据。
方式3-----文件对象. readlines()
file.readlines()
//readlines()方法在读取数据后会返回一个列表,该列表中的每个元素对应着文件中的每一行数据。
小提示: read()(参数缺省时)和readlines()方法都可一次读取文件中的全部数据,但这两种操作都不够安全。因为计算机的内存是有限的,若文件较大,read()和readlines()的一次读取便会耗尽系统内存。为了保证读取安全,通常多次调用read()方法,每次读取size字节的数据。
文件数据写入
writelines()方法用于向文件中写入字符串序列,其语法格式如下:
文件对象. writelines([str]) //例如:file.writelines([str])
案例代码
def printMyAdress(myName,phone,adress):
print(myName)
print(phone)
print(adress)
print
wfile.write(myName+'\n')
wfile.write(phone+'\n')
wfile.write(adress+'\n')
wfile = open("D:/tongxunlu.txt", 'w')
printMyAdress("周洪斌","13862345099","武汉市扬子街33号")
printMyAdress("王琦","18997543321","北京市宣武门西大街21号")
wfile.close()
总结反思
本次课主要补充介绍了Python常用的内置函数、函数创建函数、函数参数(单个、多个)、递归函数、变量、列表、文件的打开与关闭、文件的读写等。
知识点繁多啊!!你居然看完了。
本文地址:https://blog.csdn.net/k1507157/article/details/110239174