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)

函数的调用

定义好的函数直到被程序调用时才会执行。函数的调用格式如下:

函数名([参数列表])

实例应用(简易计算器)

熟练地定义函数

熟练地调用函数

分析:

本实例的计算器具有最基本的加、减、乘、除 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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

udp怎么保证不丢包_在 Flink 算子中使用多线程如何保证不丢数据?

分析痛点笔者线上有一个 Flink 任务消费 Kafka 数据,将数据转换后,在 Flink 的 Sink 算子内部调用第三方 api 将数据上报到第三方的数据分析平台。这里使用批量同步 api,即:每 50 条数据请求一次第三方接口,可以通过批…

php 没有libmysql.dll,PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰

有朋友下载了PHP5.3,PHP5.4版本想加载mysql支持的时候发现没有libmysql.dll文件,无法完成mysql配置,其实PHP5.3版本开始,使用mysqlnd库,不再使用libmysql.dll用来访问MySQL数据库,大大提升了PHP的数据库访问…

堆排序时间复杂度_图解堆结构、堆排序及堆的应用

前言这次我们介绍另一种时间复杂度为 O(nlogn) 的选择类排序方法叫做堆排序。我将从以下几个方面介绍:堆的结构堆排序优化的堆排序原地堆排序堆的应用堆的结构什么是堆?我给出了百度的定义,如下:堆(Heap)是计算机科学中一类特殊的…

农历php,PHP农历公历转换

/*云南省曲靖师范学院计算机科学与工程学院-杨海熙编写2009-9-3*/class Lunar{private $_SMDay array(1 > 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);//定义公历月分天数private $_LStart 1950 ;//农历从1950年开始private $_LMDay array(//差:该年的…

python迷宫起点终点所有路径_通向终点的路不止一条!python迷宫。

马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有帐号?立即注册x本帖最后由 wei_Y 于 2014-11-24 19:53 编辑2008121223547917.jpg (56.62 KB, 下载次数: 3)2014-11-17 19:22 上传其实木有上面那么高端啦…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法,包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而,许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

php websocket 帧封装,swoole websocket封装类和调用

上代码 ws.php/*** ws 优化 基础类库* User: singwa* Date: 18/3/2* Time: 上午12:34*/class Ws {CONST HOST "0.0.0.0";CONST PORT 9512;public $ws null;public function __construct() {$this->ws new swoole_websocket_server("0.0.0.0", 9512)…

夸克浏览器怎么安装脚本_广告看烦了?别砸手机!这五款浏览器能拯救你

哈喽大家好,欢迎来到黑马公社。随着各种良莠不齐的内容开始泛滥,黑马发现自己很难通过网络第一时间找到自己想要的内容。在电脑上,黑马为自己的每个浏览器都安装了不下三个广告屏蔽插件,而在手机上,很难。先不说手机浏…

php 今天 明天 后天 显示10天,【微信小程序】实现含有今天,明天,后天的日期组件...

封面图.JPG前言做过微信小程序的前端er都知道,小程序有个日期组件,叫picker,但是,需求方要求日期和时间都要显示的,用picker组件的话,那就用到两个picker,date和time,就是说要让用户…

python dlib 年龄 性别_python dlib学习(一):人脸检测

1、环境安装Windows: 旧版本安装pip install xxx.whl。以下是whl文件地址: ​ Python Package Index​ 最新版本安装:不要嫌麻烦,先装上visual studio2015 (C模块)。​ 具体的记不清了,装上cmake和boost,然…

php数组实例,php常用数组函数实例小结

本文实例总结了php常用数组函数。分享给大家供大家参考,具体如下:1. array array_merge(array $array1 [, array $array2 [, $array]])函数功能:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回结果的…

python预测控制_无人驾驶——4.控制之MPC模型预测控制

源自:《无人驾驶无人驾驶车辆模型预测控制》——龚建伟参考:https://wenku.baidu.com/view/8e4633d519e8b8f67c1cb9fa.html0.车辆模型汽车的车轮转角为δf分别做垂直于后轮和前轮的射线,这两根射线会交于O点,两轮模型会绕O点进行运…

php实现git服务器,如何搭建和配置Git服务器

本篇文章给大家带来的内容是介绍如何搭建和配置Git服务器,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。安装Git安装依赖yum install curl-devel expat-devel gcc gcc-cyum install perl perl-devel gettext-devel openssl-…

手机连接投影机的步骤_投影机安装过程详解

投影机安装过程详解一 投影机的安装方式1、桌面摆放桌面投影虽然看起来不是很美观,但可以省去那些繁琐的步骤,只需要准备一张桌子,还可以购买一些专门用来摆放投影机的可移动小车架,把投影机往上一放,连接上线缆就可以…

php memcached close,PHP连接Memcached安装及数据库操作

memcached介绍Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据。很多网站通过使用 Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站。Memcached是典…

坏道修复是不是硬盘东西全部都没有了_硬盘有坏道就不能用了吗?别再吃哑巴亏了,今天跟大家再说一次...

硬盘是电脑的存储硬件,是电脑中核心的硬件之一,目前市场上主要使用的是固态硬盘与机械硬盘两种,固态硬盘的读写速度较快,容量小,价格贵,机械硬盘读写速度慢,容量大价格便宜,现在的电…

html5+php调用android手机图片,html5+exif.js+canvas+php实现手机上传图片,图片损坏无法打开...

上传图片,图片损坏无法打开,图片路径也是正确的,function selectFileImage(fileObj) {var file fileObj.files[0];//图片方向角 added by lzkvar Orientation null;if (file) {console.log("正在上传,请稍后...");var rFilter /…

word 编辑域中的汉字_15条Word常用操作教程,简单实用,纯干货分享,收藏备用!...

点击蓝字关注我们1. 去除页眉横线在页眉插入信息的时候经常会在下面出现一条横线,如果这条横线影响你的视觉。这时你可以采用下述的两种方法去掉:用第一种的朋友比较多,即选中页眉的内容后,选取“格式”选项,选取“边框…

matlab里面连接器是什么,连接器

连接器连接器,即CONNECTOR。国内亦称作接插件、插头和插座。一般是指电连接器。即连接两个有源器件的器件,传输电流或信号。它广泛应用于航空、航天、国防等军用系统中。连接器是我们电子工程技术人员经常接触的一种部件。它的作用非常单纯:在…

安卓抓包软件_Packet Capture安卓抓包神器介绍及使用教程

除了干货,其他什么也没有源码|资源|软件|教程|揭秘关 注Packet Capture是一款安卓抓包软件,能用来提取用户操作程序内容,Packet Capture可以捕获网络数据包,并记录它们使用中间人技术…