1:定义函数

  1. def printInfo():
  2.   print("I love Python!")
  3.  
  4. #调用函数
  5. #注意:函数定义完毕并不会被默认执行,只能通过调用的方式来让它执行
  6. printInfo()

2:向函数传递信息:即参数

  1. #求两个数的和
  2. def sumNum(a,b): #这里的a,b为形式参数(形参)
  3.   print("%d"%(a+b))
  4.  
  5. sumNum(10,20) #这里的10,20为实际传入的参数(实参)

3:位置实参/关键字实参:调用带有参数的函数时,可以指定参数的顺序

  1. def myPet(petType, petName):
  2.   print("我的宠物是一只"+petType+", 它的名字是"+petName+".")
  3.  
  4. #以下两种调用方式输出的结果一样
  5. myPet(petType = '小狗', petName = 'jenson')
  6. myPet(petName = 'jenson', petType = '小狗')

4:带有返回值的函数

  1. def sumNum(a,b):
  2.   return a+b
  3.  
  4. #调用函数,顺便保存函数的返回值,以便以后使用
  5. result = sumNum(11,22)
  6. print(result)

5:常见的四种函数类型

'''
无参数,无返回值(如上述1)
无参数,有返回值(如下)
有参数,无返回值(如上述2)
有参数,有返回值(如上述4)
'''

  1. def getId():
  2.   return 2001234
  3.  
  4. idNum = getId()
  5. print("id = %d"%idNum)

6:函数的嵌套调用

  1. def testA1():
  2.   print("开始执行函数A1...")
  3.  
  4. def testA():
  5.   print("开始执行函数A...")
  6.   testA1()
  7.   print("函数A执行结束.")
  8.  
  9. testA()
  10.  
  11. #函数嵌套调用实例:写一个函数求三个数的和,并求三个数的平均值
  12. def getSum(a,b,c):
  13.   sum = a + b + c
  14.   return sum
  15.  
  16. def avgValue(A,B,C):
  17.   result = getSum(A,B,C)
  18.   average = result/3.0
  19.   return average
  20.  
  21. result = avgValue(20,30,40)
  22. print("三个数的平均值是:%f"%result)

7:函数的局部变量和全局变量
'''
局部变量,就是在函数内部定义的变量
不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
'''

  1. def test1():
  2.   a = 100 #这里的a就是局部变量,只在test1函数内起作用
  3.  
  4. def test2():
  5.   print("a=%d"%a) #在test2中不能使用a
  6.  
  7. test1()
  8. #test2() #报错
  9. #print("a=%d"%a) #会报错
  10.  
  11. #如果一个变量既能在这个函数中使用也能在其他函数中使用,则这样的变量就是全局变量
  12. a = 1000 #全局变量
  13. def test1():
  14.   print(a)
  15.  
  16. def test2():
  17.   print(a)
  18.  
  19. test1()
  20. test2()
  21.  
  22. #全局变量和局部变量名称可以相同
  23. b = 1000
  24. def testA2():
  25.   b = 2000 #这里打印的b是局部变量
  26. print(b)
  27.  
  28. def testA3():
  29.   print(b) #这里打印的b是全局变量
  30.  
  31. testA2()
  32. testA3()
  33.  
  34. #如果需要在函数中修改全局变量,那么就需要用global进行声明,否则会出错
  35. c = 1000
  36. def testB1():
  37.   global c
  38.   print("修改前:c=%d"%c)
  39.   c = 2000
  40.   print("修改后:c=%d"%c) #这里打印的c的值已经发生变化
  41.  
  42. def testB2():
  43.   print(c) #这里打印的c的值也将发生变化
  44.  
  45. testB1()
  46. testB2()

练习一:计算1~指定数的和

  1. #定义求和函数,有返回值
  2. def getSum(num):
  3.   i = 1
  4.   sum = 0
  5.   while i<=num:
  6.     sum+=i
  7.     i+=1
  8.  
  9.   return sum
  10.  
  11. #将返回值保存在一个变量中
  12. result = getSum(1000)
  13. print("-"*20)
  14. print("求和结果是:%d"%result)
  15. print("-"*20)

练习二:名片管理系统(第一版

  1. #主界面函数:没有参数没有返回值
  2. def displayMenu():
  3.   print("-"*30)
  4.   print(" 名片管理系统 V6.0")
  5.   print(" 1. 添加名片")
  6.   print(" 2. 删除名片")
  7.   print(" 3. 修改名片")
  8.   print(" 4. 查询名片")
  9.   print(" 5. 遍历名片")
  10.   print(" 6. 退出系统")
  11.   print("-"*30)
  12.  
  13. #获取用户输入的信息:没有参数,有返回值
  14. def getChoice():
  15.   selectedKey = int(input("请输入选择的序号:"))
  16.   return selectedKey
  17.  
  18. #有参数,没有返回值
  19. def printAllInfo(nameListTemp):
  20.   print("="*20)
  21.   for temp in nameListTemp:
  22.   print(temp)
  23.   print("="*20)
  24.  
  25. nameList = []
  26. i = 0
  27. while i<10:
  28.  
  29.   #打印提示
  30.   displayMenu()
  31.  
  32.   #等待用户选择
  33.   key = getChoice()
  34.  
  35.   if key == 1:
  36.     print("您选择了名片添加功能")
  37.     newName = input("请输入姓名:")
  38.     nameList.append(newName)
  39.   elif key == 3:
  40.     pass
  41.   elif key == 4:
  42.     pass
  43.   elif key == 5:
  44.     printAllInfo(nameList)
  45.   elif key == 6:
  46.     break
  47.   else:
  48.     print("输入有误,请重新输入!")
  49.  
  50.   i+=1

测试结果如下:

练习三:编写"学生管理系统"(第一版),初步要求如下:

'''
必须使用自定义函数,完成对程序的模块化
学生信心至少包含:姓名、年龄、学号,除此以外可以适当添加
必须完成的功能:添加、删除、修改、查询、遍历、退出
'''

  1. #定义一个列表用来存储多个学生的信息
  2. stuList = []
  3.  
  4. #定义系统菜单显示函数
  5. def displayMenu():
  6.   #完成显示系统菜单的功能
  7.   print("*"*40)
  8.   print(" 学 生 管 理 系 统 V2.0")
  9.   print(" 1. 添加学生信息")  
  10.   print(" 2. 删除学生信息")
  11.   print(" 3. 修改学生信息")
  12.   print(" 4. 查询学生信息")
  13.   print(" 5. 遍历学生信息")
  14.   print(" 6. 退出学生管理系统")
  15.   print("*"*40)
  16.  
  17. def addNewStu(tempStuList):
  18.   #完成添加学生信息的功能
  19.   name = input("请输入学生的姓名:")
  20.   stuId = input("请输入学生的学号:")
  21.   age = input("请输入学生的年龄:")
  22.  
  23.   #定义一个字典用来存储每个学生的信息
  24.   stuDict = {}
  25.   stuDict['name'] = name
  26.   stuDict['stuId'] = stuId
  27.   stuDict['age'] = age
  28.  
  29.   #将每个学生的信息添加到列表中
  30.   tempStuList.append(stuDict)
  31.  
  32. def delStu():
  33.   #完成删除学生信息的功能
  34.   delNum = int(input("请输入你要删除的学生的编号:"))
  35.   del stuList[delNum]
  36.  
  37. def reviseStu():
  38.   #完成修改学生信息的功能
  39.   reviseNum = int(input("请输入你要修改的学生的编号:"))
  40.   tempStuDict = stuList[reviseNum]
  41.   #输入要修改学生的信息
  42.   newName = input("请输入要修改后学生的姓名:")
  43.   newStuId = input("请输入要修改后学生的学号:")
  44.   newAge = input("请输入要修改后学生的年龄:")
  45.   tempStuDict['name'] = newName
  46.   tempStuDict['stuId'] = newStuId
  47.   tempStuDict['age'] = newAge
  48.  
  49. def inquireStu():
  50.   #完成查询学生信息的功能
  51.   inquireNum = int(input("请输入你要查询的学生的编号:"))
  52.   inquireStuDict = stuList[inquireNum]
  53.   print("你所查询的学生的信息为:")
  54.   print("姓名: %s 学号: %s 年龄: %s"%(inquireStuDict['name'], inquireStuDict['stuId'], inquireStuDict['age']))
  55.  
  56. def bianliStu():
  57.   #完成遍历学生信息的功能
  58.   print("姓名 学号 年龄")
  59.   for tempStu in stuList:
  60.     print("%s %s %s"%(tempStu['name'], tempStu['stuId'], tempStu['age']))
  61.  
  62. while True:
  63.  
  64.   #提示用户选择功能
  65.   key = int(input("请输入你选择的功能序号:"))
  66.   print("\n")
  67.  
  68.   if key == 1:
  69.     displayMenu()
  70.     addNewStu(stuList)
  71.   elif key == 2:
  72.     delStu()
  73.   elif key == 3:
  74.     reviseStu()
  75.   elif key == 4:
  76.     inquireStu()
  77.   elif key == 5:
  78.     bianliStu()
  79.   elif key == 6:
  80.     ssmu = input("亲,确实要退出吗?(y/n) ~~~~>_<~~~~")
  81.   if ssmu == 'y':
  82.     break
  83.   else:
  84.     print("输入有误,请重新输入!")

测试结果如下:

Python---函数的相关知识点总结一:的更多相关文章

  1. Python 函数和相关用法笔记

    python中%r和%s的区别 总结:%r打印时能够重现它所代表的对象 __str__和__repr__的用法

  2. python函数-易错知识点

    定义函数: def greet_users(names): #names是形参 """Print a simple greeting to each user in th ...

  3. 【Python】if相关知识点

    1.9选课中心前两页课程名称打印到固定系统文件夹的某个csv文件中. #-*- coding: UTF-8 -*- #coding==utf-8 #from selenium.webdriver.su ...

  4. python 函数,模块知识点运用示例

    给定验证码长度n,生成随机验证码,验证码由数字.字母组成(参考chr()内置方法) # 给定验证码长度n,生成随机验证码,验证码由数字.字母组成(参考chr()内置方法) # 第33-126号(共94 ...

  5. Python开发一个csv比较功能相关知识点汇总及demo

    Python 2.7 csv.reader(csvfile, dialect='excel', **fmtparams)的一个坑:csvfile被csv.reader生成的iterator,在遍历每二 ...

  6. python函数知识点(详解匿名函数)

    Python函数是组织好的.单一的.具有独立功能模块的代码块. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定 ...

  7. Python函数知识点总结

    1.函数的定义2.如何定义一个函数以及函数语法3.函数的调用4.函数的参数(形参,实参)以及参数的传递5.函数的返回值6.变量的作用域7.匿名函数8.嵌套函数和闭包9.装饰器10.函数思维导图 1.函 ...

  8. php正则相关知识点

    关于正则,其实简单就是搜索和匹配.php,java,python等都是支持正则的,php正则兼容perl.好多同学觉得正则比较难,比较抽象,其实正则是非常简单的,主要是一个熟悉和反复练习的结果,还有一 ...

  9. Python OS模块重要知识点

    Python OS模块重要知识点 这几点很重要,主要是关于文件路径,我之前踩了很多坑,今天总结一下,方便以后能够避免与path相关的各种坑! 1,首先我们想获取某个文件夹下面的所有文件夹以及文件(不包 ...

  10. python函数版ATM

    最近系统的学习python函数知识点,感觉在面向对象之前,函数的功能确实强大. 最近使用函数写了ATM项目,虽然需求简单但也有很多知识点需要注意,这个项目把python基础的很多知识点都用上了. 前前 ...

随机推荐

  1. 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 ...

  2. Selenium Locating Elements

    Locating Elements Location Methods: find_element_by_id find_element_by_name find_element_by_xpath fi ...

  3. PHP content-type为"application/json"的post过来的数据$_POST接受不到的问题

    ajax默认是以application/x-www-form-urlencoded方式提交.也就是常见的表单提交方式.在PHP中使用$_POST方式可以轻松获取. 但如果将ajax的请求头强制指定为a ...

  4. 今天聊一聊Java引用类型的强制类型转换

    实际上基本类型也是存在强制类型转换的,这里简单提一下.概括来讲分为两种: 1.自动类型转换,也叫隐式类型转换,即数据范围小的转换为数据范围大的,此时编译器自动完成类型转换,无需我们写代码 2.强制类型 ...

  5. 【winform】userControl刷新父窗体的datagridview

    1.ContextMenuStrip 获取右键控件名称 this.contextMenuScriptScore.SourceControl.Name; //当前控件名 2.radiobutton 分组 ...

  6. 企业级中带你ELK如何实时收集分析Mysql慢查询日志

    什么是Mysql慢查询日志? 当SQL语句执行时间超过设定的阈值时,便于记录到指定的日志文件中或者表中,所有记录称之为慢查询日志 为什么要收集Mysql慢查询日志? 数据库在运行期间,可能会存在这很多 ...

  7. Berlekamp_Massey 算法 (BM算法) 学习笔记

    原文链接www.cnblogs.com/zhouzhendong/p/Berlekamp-Massey.html 前言 BM算法用于求解常系数线性递推式. 它可以在 $O(n^2)$ 的时间复杂度内解 ...

  8. Facebook授权登录

    1.注册开发者账号 登陆facebook开发者平台 (https://developers.facebook.com/), 注册facebook开发者账号. 2.Facebook登录Key Hash配 ...

  9. Linux 上使用LVM 扩展磁盘Size

    第一步:使用 fdisk -l 查看当前磁盘容量 fdisk -l 第二步: 使用 fdisk /dev/sda/ 为free space 添加新的分区 fdisk /dev/sda m :列出所有命 ...

  10. linux(ubuntu) 安装composer(PHP用来管理依赖关系的工具 ) 和安装中国全量镜像

    https://www.phpcomposer.com/  composer中文网 1:进入安装目录   cd /usr/local/bin 2:下载并安装     sudo curl -s http ...