Python---函数的相关知识点总结一:
1:定义函数
- def printInfo():
- print("I love Python!")
- #调用函数
- #注意:函数定义完毕并不会被默认执行,只能通过调用的方式来让它执行
- printInfo()
2:向函数传递信息:即参数
- #求两个数的和
- def sumNum(a,b): #这里的a,b为形式参数(形参)
- print("%d"%(a+b))
- sumNum(10,20) #这里的10,20为实际传入的参数(实参)
3:位置实参/关键字实参:调用带有参数的函数时,可以指定参数的顺序
- def myPet(petType, petName):
- print("我的宠物是一只"+petType+", 它的名字是"+petName+".")
- #以下两种调用方式输出的结果一样
- myPet(petType = '小狗', petName = 'jenson')
- myPet(petName = 'jenson', petType = '小狗')
4:带有返回值的函数
- def sumNum(a,b):
- return a+b
- #调用函数,顺便保存函数的返回值,以便以后使用
- result = sumNum(11,22)
- print(result)
5:常见的四种函数类型
'''
无参数,无返回值(如上述1)
无参数,有返回值(如下)
有参数,无返回值(如上述2)
有参数,有返回值(如上述4)
'''
- def getId():
- return 2001234
- idNum = getId()
- print("id = %d"%idNum)
6:函数的嵌套调用
- def testA1():
- print("开始执行函数A1...")
- def testA():
- print("开始执行函数A...")
- testA1()
- print("函数A执行结束.")
- testA()
- #函数嵌套调用实例:写一个函数求三个数的和,并求三个数的平均值
- def getSum(a,b,c):
- sum = a + b + c
- return sum
- def avgValue(A,B,C):
- result = getSum(A,B,C)
- average = result/3.0
- return average
- result = avgValue(20,30,40)
- print("三个数的平均值是:%f"%result)
7:函数的局部变量和全局变量
'''
局部变量,就是在函数内部定义的变量
不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
'''
- def test1():
- a = 100 #这里的a就是局部变量,只在test1函数内起作用
- def test2():
- print("a=%d"%a) #在test2中不能使用a
- test1()
- #test2() #报错
- #print("a=%d"%a) #会报错
- #如果一个变量既能在这个函数中使用也能在其他函数中使用,则这样的变量就是全局变量
- a = 1000 #全局变量
- def test1():
- print(a)
- def test2():
- print(a)
- test1()
- test2()
- #全局变量和局部变量名称可以相同
- b = 1000
- def testA2():
- b = 2000 #这里打印的b是局部变量
- print(b)
- def testA3():
- print(b) #这里打印的b是全局变量
- testA2()
- testA3()
- #如果需要在函数中修改全局变量,那么就需要用global进行声明,否则会出错
- c = 1000
- def testB1():
- global c
- print("修改前:c=%d"%c)
- c = 2000
- print("修改后:c=%d"%c) #这里打印的c的值已经发生变化
- def testB2():
- print(c) #这里打印的c的值也将发生变化
- testB1()
- testB2()
练习一:计算1~指定数的和
- #定义求和函数,有返回值
- def getSum(num):
- i = 1
- sum = 0
- while i<=num:
- sum+=i
- i+=1
- return sum
- #将返回值保存在一个变量中
- result = getSum(1000)
- print("-"*20)
- print("求和结果是:%d"%result)
- print("-"*20)
练习二:名片管理系统(第一版)
- #主界面函数:没有参数没有返回值
- def displayMenu():
- print("-"*30)
- print(" 名片管理系统 V6.0")
- print(" 1. 添加名片")
- print(" 2. 删除名片")
- print(" 3. 修改名片")
- print(" 4. 查询名片")
- print(" 5. 遍历名片")
- print(" 6. 退出系统")
- print("-"*30)
- #获取用户输入的信息:没有参数,有返回值
- def getChoice():
- selectedKey = int(input("请输入选择的序号:"))
- return selectedKey
- #有参数,没有返回值
- def printAllInfo(nameListTemp):
- print("="*20)
- for temp in nameListTemp:
- print(temp)
- print("="*20)
- nameList = []
- i = 0
- while i<10:
- #打印提示
- displayMenu()
- #等待用户选择
- key = getChoice()
- if key == 1:
- print("您选择了名片添加功能")
- newName = input("请输入姓名:")
- nameList.append(newName)
- elif key == 3:
- pass
- elif key == 4:
- pass
- elif key == 5:
- printAllInfo(nameList)
- elif key == 6:
- break
- else:
- print("输入有误,请重新输入!")
- i+=1
测试结果如下:
练习三:编写"学生管理系统"(第一版),初步要求如下:
'''
必须使用自定义函数,完成对程序的模块化
学生信心至少包含:姓名、年龄、学号,除此以外可以适当添加
必须完成的功能:添加、删除、修改、查询、遍历、退出
'''
- #定义一个列表用来存储多个学生的信息
- stuList = []
- #定义系统菜单显示函数
- def displayMenu():
- #完成显示系统菜单的功能
- print("*"*40)
- print(" 学 生 管 理 系 统 V2.0")
- print(" 1. 添加学生信息")
- print(" 2. 删除学生信息")
- print(" 3. 修改学生信息")
- print(" 4. 查询学生信息")
- print(" 5. 遍历学生信息")
- print(" 6. 退出学生管理系统")
- print("*"*40)
- def addNewStu(tempStuList):
- #完成添加学生信息的功能
- name = input("请输入学生的姓名:")
- stuId = input("请输入学生的学号:")
- age = input("请输入学生的年龄:")
- #定义一个字典用来存储每个学生的信息
- stuDict = {}
- stuDict['name'] = name
- stuDict['stuId'] = stuId
- stuDict['age'] = age
- #将每个学生的信息添加到列表中
- tempStuList.append(stuDict)
- def delStu():
- #完成删除学生信息的功能
- delNum = int(input("请输入你要删除的学生的编号:"))
- del stuList[delNum]
- def reviseStu():
- #完成修改学生信息的功能
- reviseNum = int(input("请输入你要修改的学生的编号:"))
- tempStuDict = stuList[reviseNum]
- #输入要修改学生的信息
- newName = input("请输入要修改后学生的姓名:")
- newStuId = input("请输入要修改后学生的学号:")
- newAge = input("请输入要修改后学生的年龄:")
- tempStuDict['name'] = newName
- tempStuDict['stuId'] = newStuId
- tempStuDict['age'] = newAge
- def inquireStu():
- #完成查询学生信息的功能
- inquireNum = int(input("请输入你要查询的学生的编号:"))
- inquireStuDict = stuList[inquireNum]
- print("你所查询的学生的信息为:")
- print("姓名: %s 学号: %s 年龄: %s"%(inquireStuDict['name'], inquireStuDict['stuId'], inquireStuDict['age']))
- def bianliStu():
- #完成遍历学生信息的功能
- print("姓名 学号 年龄")
- for tempStu in stuList:
- print("%s %s %s"%(tempStu['name'], tempStu['stuId'], tempStu['age']))
- while True:
- #提示用户选择功能
- key = int(input("请输入你选择的功能序号:"))
- print("\n")
- if key == 1:
- displayMenu()
- addNewStu(stuList)
- elif key == 2:
- delStu()
- elif key == 3:
- reviseStu()
- elif key == 4:
- inquireStu()
- elif key == 5:
- bianliStu()
- elif key == 6:
- ssmu = input("亲,确实要退出吗?(y/n) ~~~~>_<~~~~")
- if ssmu == 'y':
- break
- else:
- print("输入有误,请重新输入!")
测试结果如下:
Python---函数的相关知识点总结一:的更多相关文章
- Python 函数和相关用法笔记
python中%r和%s的区别 总结:%r打印时能够重现它所代表的对象 __str__和__repr__的用法
- python函数-易错知识点
定义函数: def greet_users(names): #names是形参 """Print a simple greeting to each user in th ...
- 【Python】if相关知识点
1.9选课中心前两页课程名称打印到固定系统文件夹的某个csv文件中. #-*- coding: UTF-8 -*- #coding==utf-8 #from selenium.webdriver.su ...
- python 函数,模块知识点运用示例
给定验证码长度n,生成随机验证码,验证码由数字.字母组成(参考chr()内置方法) # 给定验证码长度n,生成随机验证码,验证码由数字.字母组成(参考chr()内置方法) # 第33-126号(共94 ...
- Python开发一个csv比较功能相关知识点汇总及demo
Python 2.7 csv.reader(csvfile, dialect='excel', **fmtparams)的一个坑:csvfile被csv.reader生成的iterator,在遍历每二 ...
- python函数知识点(详解匿名函数)
Python函数是组织好的.单一的.具有独立功能模块的代码块. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定 ...
- Python函数知识点总结
1.函数的定义2.如何定义一个函数以及函数语法3.函数的调用4.函数的参数(形参,实参)以及参数的传递5.函数的返回值6.变量的作用域7.匿名函数8.嵌套函数和闭包9.装饰器10.函数思维导图 1.函 ...
- php正则相关知识点
关于正则,其实简单就是搜索和匹配.php,java,python等都是支持正则的,php正则兼容perl.好多同学觉得正则比较难,比较抽象,其实正则是非常简单的,主要是一个熟悉和反复练习的结果,还有一 ...
- Python OS模块重要知识点
Python OS模块重要知识点 这几点很重要,主要是关于文件路径,我之前踩了很多坑,今天总结一下,方便以后能够避免与path相关的各种坑! 1,首先我们想获取某个文件夹下面的所有文件夹以及文件(不包 ...
- python函数版ATM
最近系统的学习python函数知识点,感觉在面向对象之前,函数的功能确实强大. 最近使用函数写了ATM项目,虽然需求简单但也有很多知识点需要注意,这个项目把python基础的很多知识点都用上了. 前前 ...
随机推荐
- Max Area of Island
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...
- Selenium Locating Elements
Locating Elements Location Methods: find_element_by_id find_element_by_name find_element_by_xpath fi ...
- PHP content-type为"application/json"的post过来的数据$_POST接受不到的问题
ajax默认是以application/x-www-form-urlencoded方式提交.也就是常见的表单提交方式.在PHP中使用$_POST方式可以轻松获取. 但如果将ajax的请求头强制指定为a ...
- 今天聊一聊Java引用类型的强制类型转换
实际上基本类型也是存在强制类型转换的,这里简单提一下.概括来讲分为两种: 1.自动类型转换,也叫隐式类型转换,即数据范围小的转换为数据范围大的,此时编译器自动完成类型转换,无需我们写代码 2.强制类型 ...
- 【winform】userControl刷新父窗体的datagridview
1.ContextMenuStrip 获取右键控件名称 this.contextMenuScriptScore.SourceControl.Name; //当前控件名 2.radiobutton 分组 ...
- 企业级中带你ELK如何实时收集分析Mysql慢查询日志
什么是Mysql慢查询日志? 当SQL语句执行时间超过设定的阈值时,便于记录到指定的日志文件中或者表中,所有记录称之为慢查询日志 为什么要收集Mysql慢查询日志? 数据库在运行期间,可能会存在这很多 ...
- Berlekamp_Massey 算法 (BM算法) 学习笔记
原文链接www.cnblogs.com/zhouzhendong/p/Berlekamp-Massey.html 前言 BM算法用于求解常系数线性递推式. 它可以在 $O(n^2)$ 的时间复杂度内解 ...
- Facebook授权登录
1.注册开发者账号 登陆facebook开发者平台 (https://developers.facebook.com/), 注册facebook开发者账号. 2.Facebook登录Key Hash配 ...
- Linux 上使用LVM 扩展磁盘Size
第一步:使用 fdisk -l 查看当前磁盘容量 fdisk -l 第二步: 使用 fdisk /dev/sda/ 为free space 添加新的分区 fdisk /dev/sda m :列出所有命 ...
- linux(ubuntu) 安装composer(PHP用来管理依赖关系的工具 ) 和安装中国全量镜像
https://www.phpcomposer.com/ composer中文网 1:进入安装目录 cd /usr/local/bin 2:下载并安装 sudo curl -s http ...