zoukankan      html  css  js  c++  java
  • Python---函数的相关知识点总结一:

    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 
    13 #函数嵌套调用实例:写一个函数求三个数的和,并求三个数的平均值
    14 def getSum(a,b,c):
    15   sum = a + b + c
    16   return sum
    17 
    18 def    avgValue(A,B,C):
    19   result = getSum(A,B,C)
    20   average = result/3.0
    21   return average
    22 
    23 result = avgValue(20,30,40)
    24 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 #如果一个变量既能在这个函数中使用也能在其他函数中使用,则这样的变量就是全局变量
    13 a = 1000  #全局变量
    14 def test1():
    15   print(a) 
    16 
    17 def test2():
    18   print(a)
    19 
    20 test1()
    21 test2()
    22 
    23 #全局变量和局部变量名称可以相同
    24 b = 1000
    25 def testA2():
    26   b = 2000 #这里打印的b是局部变量
    27 print(b) 
    28 
    29 def testA3():
    30   print(b) #这里打印的b是全局变量
    31 
    32 testA2()
    33 testA3()
    34 
    35  
    36 
    37 #如果需要在函数中修改全局变量,那么就需要用global进行声明,否则会出错
    38 c = 1000
    39 def testB1():
    40   global c
    41   print("修改前:c=%d"%c)
    42   c = 2000 
    43   print("修改后:c=%d"%c) #这里打印的c的值已经发生变化
    44 
    45 def testB2():
    46   print(c) #这里打印的c的值也将发生变化
    47 
    48 testB1()
    49 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("
    ")
    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("输入有误,请重新输入!")

    测试结果如下:

  • 相关阅读:
    Tensorflow 学习
    几种常见损失函数
    两人比赛先选后选谁获胜系列的动态规划问题
    LeetCode 全解(bug free 训练)
    局部敏感哈希LSH
    Annoy解析
    MCMC例子
    TinyBERT简单note
    ALBERT简单note
    求根号2, 网易的一道面试题
  • 原文地址:https://www.cnblogs.com/yxtz271828/p/8963828.html
Copyright © 2011-2022 走看看