驱动案例

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

内置函数

自定义函数

函数指被封装起来的、实现某种功能的一段代码。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

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

python通讯录运用的知识点_案例驱动式Python学习--通讯录存取相关推荐

  1. 案例驱动式Python学习笔记【第一篇】便捷水果店

    前言 后续的此系列博文用于记录案例式Python学习笔记记录,供本人和感兴趣的小伙伴一起学习!!人生苦短,我学Python! 驱动案例 便捷水果店:请为水果店开发一个收银的小程序,已知水果单价和购买重 ...

  2. 案例驱动式Python学习笔记【第三篇】居民身份证信息提取

    驱动案例 居民身份证是每位居民的唯一身份标识,18位的居民身份证号的信息包含省.市.出生日期和性别等信息, 那么本节将介绍如何按需提取相应的信息.居民身份证是每位居民的唯一身份标识,18位的居民身份证 ...

  3. 案例驱动式Python学习笔记【第六篇】电子宠物

    驱动案例 设计多只电子宠物,它们具有名字,性别,能力,体重等属性,可以完成吃饭.运动.显示状态的动作. 类与对象 通过类(模板)可以生产多个具有相同属性和方法(行为)的对象,对象是类的实例化 clas ...

  4. python函数必背知识点_必背函数——python学习第四次总结

    七个基本必背函数 join 将设置字符插入目标字符串中每个字符中间 split 按既定字符将目标字符串内全部对应分割,默认从左开始,可指定分割次数(分割后对应分割符不会返回) find 从前往后在既定 ...

  5. 计算机导论python知识点_如何系统地自学 Python?

    我是自学的Python.从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间.期间有不少门槛,但也充满乐趣.乐趣是自学的最大动力.Python ...

  6. 零基础python视频教程谁的好_零基础自学Python!自我提升视频教程,新手必看

    小编今天给大家分享一套高老师的python400集视频教程,里面包含入门进阶,源码,实战项目等等,,不管你是正在学习中,还是想要学习的,通通来吧 肯定不会让你失望. 目录大纲: 本套教程15天 学前环 ...

  7. python制作软件很复杂_零基础学Python难吗,或者有什么其他数据加工软件推荐?...

    之前因为一个问题的回答:零基础想系统的学习金融学.量化投资.数据分析.Python,需要哪些课程和书籍.获赞1000+.大概整理一下之前的答案,回答下这个问题. 金融领域的量化分析如今是很受重视的,所 ...

  8. python金融工程的工具包_金融工程及其Python应用

    目 录 第1章 金融工程导论 1 1.1 金融工程的概念 2 1.2 国外现代主流金融理论发展历程 2 1.3 国内金融的发展 3 1.4 现代主流金融理论简介 4 1.4.1 投资组合理论 4 1. ...

  9. python问题化教学设计_基于IPO的Python教学设计

    冯艳茹 陈平 摘要:程序设计基础课程是培养大学生解决计算问题的思维和能力的课程,使用Python作为大学生的首门编程语言课程,可操作性强,入门容易,上手快.该文提出了基于IPO的教学设计新思维,使教学 ...

最新文章

  1. .Lucky后缀勒索病毒数据解密
  2. Failed to resolve:com.android.support:appcompat-v7
  3. python算法与数据结构-数据结构中常用树的介绍(45)
  4. if _name_ == _main_
  5. 天池 在线编程 区间统计(队列)
  6. (数据库系统概论|王珊)第十一章并发控制-第一节:并发控制概述
  7. UIView 的旋转和缩放
  8. java 当前时间格式_JAVA中获取当前系统时间及格式转换
  9. 图书管理系统需求分析说明书
  10. (数组) leetcode 189. Rotate Array
  11. 【直观理解】粒子滤波 原理及实现
  12. psp测试电池软件,电玩巴士首测成功-PSP神奇电池恢复砖头与降级
  13. linux shell通过i2cget命令获取I2C器件寄存器的值
  14. python 经典图书排行榜_书榜 | 计算机书籍(8.12-8.18)销售排行榜
  15. 迄今见过的最好的职业规划的文章
  16. 小虎电商浏览器:拼多多层级有什么作用?多多参谋客服为你解答
  17. 十六进制颜色转换ARGB/RGB
  18. Excel技巧之引用其他工作表数据
  19. H5之外部浏览器访问微信客户端网页
  20. AI如此多娇,引得猛男竞折腰

热门文章

  1. SQL- AND OR Order by INSERT INTO
  2. WiFi共享精灵 - 不需路由器一键轻松把网线共享给手机、笔记本等同时无线上网...
  3. spring-security-学习笔记-02-基于Session的认证方式
  4. linux基础知识——进程相关概念
  5. MYSQL--事务隔离
  6. html标签始终在右下角,html+javascript实现图片始终在页面右下角
  7. 三菱fx2n64mr说明书_FX2N-64MR-001原理及应用三菱FX2N-64MR-001使用说明书 - 三菱
  8. mysql 移植ucos_基于STM32F767的UCOSIII移植学习
  9. OpenCV——绘制基本图形
  10. 位姿估计的来龙去脉——内外参,三维重建,Pnp问题