欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

案例驱动式Python学习--通讯录存取

程序员文章站 2022-03-04 21:56:31
驱动案例通讯录:要求打印出企业全部十名员工通讯录。(要求有文件相关操作)内置函数Python其他内置函数及使用方法参见菜鸟教程!!!自定义函数函数指被封装起来的、实现某种功能的一段代码。Python安装包、标准库中自带的函数统称为内置函数,用户自己编写的函数称为自定义函数,不管是哪种函数,其定义和调用方式都是一样的。函数的定义Python中使用关键字def定义函数。def 函数名(参数列表)函数体[return 语句]无参函数定义def weather(): #无参数...

驱动案例

通讯录:要求打印出企业全部十名员工通讯录。(要求有文件相关操作)

内置函数

案例驱动式Python学习--通讯录存取
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)

函数的调用

定义好的函数直到被程序调用时才会执行。函数的调用格式如下:
函数名([参数列表])
案例驱动式Python学习--通讯录存取

实例应用(简易计算器)

熟练地定义函数
熟练地调用函数
分析:
本实例的计算器具有最基本的加、减、乘、除 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

案例驱动式Python学习--通讯录存取

参数传递

函数的参数传递是指将实际参数传递给形式参数的过程。根据不同的传递形式,函数的参数可分为:位置参数、关键字参数、默认参数、不定长参数。

位置参数

调用函数时,编译器会将函数的实际参数按照位置顺序依次传递给形式参数。

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接收后以元组形式保存。示例:
案例驱动式Python学习--通讯录存取

**kwargs用法

**kwargs用于接收不定数量的关键字参数,调用函数时传入的所有参数被**kwargs接收后以字典形式保存。示例:

案例驱动式Python学习--通讯录存取

递归函数

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

案例驱动式Python学习--通讯录存取

全局变量

全局变量是在函数外定义的变量,它在程序中任何位置都可以被访问.函数中只能访问全局变量,但不能修改全局变量。
案例驱动式Python学习--通讯录存取
若要在函数内部修改全局变量的值,需先在函数内使用关键字“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:表示文件的打开模式。


单独使用:
案例驱动式Python学习--通讯录存取
搭配使用:
案例驱动式Python学习--通讯录存取

关闭文件

使用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学习--通讯录存取

总结反思

本次课主要补充介绍了Python常用的内置函数函数创建函数函数参数(单个、多个)递归函数变量列表文件的打开与关闭、文件的读写等。
知识点繁多啊!!你居然看完了。
案例驱动式Python学习--通讯录存取

本文地址:https://blog.csdn.net/k1507157/article/details/110239174