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---函数的相关知识点总结一:的更多相关文章

  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. xls添加 序号列技巧

    问题背景:在给xls添加一列序列时常碰到一个问题,用下拉很不科学(如果行数很多):用双击需要右边有一列不断开的数据列. 方法一:在A1 =row()回车,选择范围,快捷键 ctrl+d,   复制其文 ...

  2. 007_wireshark分析TCP的三次握手和四次断开

    要想进行抓包分析,必须先了解TCP的原理.这里介绍了TCP的建立连接的三次握手和断开连接的四次握手. 一.前言:介绍三次握手之前,先介绍TCP层的几个FLAGS字段,这个字段有如下的几种标示 SYN表 ...

  3. JavaScript高级程序设计(读书笔记)(一)

    本笔记汇总了作者认为“JavaScript高级程序设计”这本书的前七章知识重点,仅供参考. 第一章 JavaScript简介 JavaScript发展简史: 1995年,JavaScript诞生 19 ...

  4. 20175226 2018-2019-2 《Java程序设计》第三周学习总结

    20175226 2018-2019-2 <Java程序设计>第三周学习总结 教材学习内容总结 编程语言的几个发展阶段 类面向机器语言(汇编语言).面向过程语言(C语言).面向对象语言(J ...

  5. vue-cli 3.0

    安装 vue-cli 3.0 时报错 vue-cli3安装遇到的问题,卸载不掉旧版本,导致更新不了 vue-cli 2.9.6 版本卸载不了 作者:Runner_leaf链接:https://www. ...

  6. python安装多版本

    39.107.96.81 root 123123 pyenv#可以实现python多版本控制与切换 pyenv local 3.5.1 ipython#更方便的编写python,可以补全命令彩色显示等 ...

  7. 用 zotero 管理文献和个人知识库

    这周开始用了一下 zotero. 这是一款非常好用的文献管理工具,但它更像是一个多功能的收藏夹,或者说是一个知识.笔记.文献的综合管理工具. 入门的时候搜到了阳志平老师的几个图文并茂的教程,这里也推荐 ...

  8. IP网际协议

    IP分类 IP地址分为网络号和主机号,5类不同的IP地址格式如下: A类地址每个网段内最多有224个,也就是16,777,214个. B类地址每个网段内最多有216个,也就是65535个. C类地址每 ...

  9. js分析 汽_车_之_家 js生成css伪元素 hs_kw44_configUS::before

    0.参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements https://developer.mozilla.org/ ...

  10. ionic2中使用极光IM的WebSDK实现即时聊天

    本文主要介绍如何在ionic项目中集成极光IM的WebSDK,详细文档可参考官方介绍. 一.准备 1. 注册激光账号,进入开发者服务页面创建应用. 2. 创建应用后须完成对应平台的推送设置,进行应用或 ...