Python笔记---函数的定义

  • 一、函数的定义和调用方法 

  • 特点:

封装、重复使用

  • 语法格式

  •  函数定义

  • 参数列表包含多个参数时,参数值和参数名称是按函数声明时的顺序匹配

  • 比较两个数,并返回最大的数
    #定义函数,设置函数参数,比较两个数返回最大值
    def max(a,b):
      if a>b:
        return a
      else:
        return b
    #创建两个变量存放两个数
    a=12
    b=20
    #调用函数
    print(max(a,b))

  • 可能有的同学看不懂有些代码的作用,下面会给大家讲解函数的参数和返回值的使用 

二、函数的作用

2.1 学生信息系统

2.2 无参数,无返回值

  • 代码编写
    #定义函数
    def zifu(str):
        #打印任何传入的字符串
        print(str)
        return
    #调用函数
    zifu("我是大美女")
    #再一次调用同一个函数
    zifu("我要调用用户自定义函数")
     

2.3 空函数

  • 不实现任何功能

  •  代码编写:
#定义一个空函数
def blank():
   pass
#使用pass作为占位符

三、函数的参数传递

  • 引入

    • 定义一个函数,用来计算两个数的差并把计算结果打印出来

 代码编写:

def num1_num():
    c=20-8
    print(c)
num1_num()
  • (1)位置参数

  •  代码编写
def num2_num(num1,num2):
    c=num1-num2
    print(c)
#参数按位置顺序传递,位置参数,又叫必须参数
num2_num(15,8)

num1和num2就是用来接受函数传递第二个参数。这时,如果想调用num2_num函数,就需要在调用函数时,在小括号中其参数传递两个数值

  • 如果定义多个参数,那在调用函数时,传递的数据要和定义的参数一一对应

  • 代码编写:
#定义函数,函数体里面有一个变量c,实现四则运算
def num2(a1,b1,c1):
   c=a1+b1-c1
   print(c)
#函数调用
num2(12,3,2)

(2)默认值参数

注意:默认参数只能放在位置参数的后面

  • 代码编写 
def studentinfo(name,age=19): #给形参一个默认值
    #打印任何传入的字符串
    print("Name:",name)
    print("age:", age)
#调用函数
studentinfo(name="tom")
  • 可以对默认参数重新赋值

  • 定义函数,函数体里面有一个变量C,实现四则运算  

  •  代码编写:
def num2(a1,b1,c1=2):
   c=a1+b1-c1
   print(c)
#函数调用
num2(12,3)

(3)不定长参数

  • *args参数
    • 元组形式输出

  • args参数并没有接受到任何数据,所以为一个空元组
  • args参数接受到数据,数据以元组的形式输出

  • 调用函数,传入多个参数

  • **kwargs参数
    • 为字典形式输出

  • 引入: 制作学生信息管理系统
  • 编写代码:
print("-----制作学生信息管理系统-----")
def Ganzhuinfo(name,age,*interests,**others):
    print(name)
    print(age)
    print(interests)
    print(others)
Ganzhuinfo("ganzhu",20,"汉服","剧本杀","看相声",id=221034,school="计算机创新学院")

  • 编写代码:
def computerinfo(name,cpu,*args,**kwargs):
    print(name)
    print(cpu)
    print(args)
    print(kwargs)
print("----函数调用多个参数-----")
computerinfo("华硕","i5","8g","1TB+128GB","GTX1050Ti")
  •  **kwargs要以键值对的形式赋值

  • 编写代码: 
print("-----**kwargs要以键值对的形式赋值-----")
def computerinfo(name,cpu,*args,**kwargs):
    print(name)
    print(cpu)
    print(args)
    print(kwargs)
computerinfo("华硕","i5","8g",Graphic="GTX1050Ti",A=221034)
  • 参数的综合应用

    • 求多个参数的和

  •   代码编写:
def sum(*x):
    result=0
    for i in x:
        result+=i
    print(result)
sum(1,2,3,4)
  • 求多个参数的积

  • 代码编写:
#例 求输入多个参数的积
def sumf(*y):
   num=1
   for i in y:
      num*=i
   print(num)
sumf(2,2,2,2)

四、函数的返回值

1.概述
  • 在程序中的函数在完成调用之后会给出一个结果,这就是“返回值”
  • 函数用return语句返回函数调用的结果。这时return后面的表达式的值就是函数调用的返回值

2.实例引入

  • 求两个数之和

  • 上述代码中,函数add中包含return语句,意味着这个函数有一个返回值,其返回值就是num1和num2相加的结果

3.函数的四种类型

(1)无参数,无返回值
  • 这种类型的函数,既不能接受参数,也不会有返回值

  • 代码编写: 
# (1)无参数,无返回值的函数
def studentMenu():
   print('-----------')
   print(' 男生宿舍信息系统')
   print('1、成员介绍')
   print('2、宿舍活动')
   print('3、退出')
   print('-----------')

studentMenu()
(2)无参数,有返回值
  • 该类型虽然不能接受参数,但可以有值返回,采取数据时会采用此类数据

  • 代码编写:
# 获取大学新生入学标准年龄
def getAge():
    return 19

age = getAge()
print("当前大学新生的入学标准年龄为:", age)
(3)有参数,无返回值
  • 有参数却无返回值相对用得极少。因为函数作为功能模块,绝大数情况下只要传入了参数就会希望使用返回值

  • 代码编写:
# (3)有参数,无返回值的函数
def average(num1, num2):
    result = (num1 + num2) / 2
    print("平均值为:%d" % result)

average(4, 2)
(4)有参数,有返回值
  • 该类函数既能接受参数,还可以有值返回,使用此类函数应对处理数据并需要结果的应用。

五、函数案例—学生信息管理系统

  •  学生信息管理是用来协助管理高校面向学生设计的一个多功能数据管理平台,是一款在校实用为小工具。通过这个案例的制作,使得大家能够掌握实际应用中四种类型函数的使用,使得函数来完成名片管理的各个功能,并且根据用户键盘输入来选择对于的函数实现相应功能。

  • 需求:通过接受用户键盘的序号(1~6)响应用户选择的功能
1、定义一个功能菜单函数,响应用户选择

  • 代码编写: 
#一、定义一个功能菜单函数,响应用户选择
def funcMenu():#无参数无返回值函数
    print("-----学生信息管理系统-----")
    print("1.添加学生")
    print("2.删除学生")
    print("3.修改学生")
    print("4.查询学生")
    print("5.获取所有学生用户信息")
    print("6.退出系统")
    print("-" * 15)
2、定义一个导入选项的函数,接收用户从键盘输入的选择序号

  •  代码编写: 
#二、定义一个导入选项的函数,接收用户从键盘输入的选择序号
def gatSelcet():#无参数有返回值函数
    selectNum=int(input("请输入选择的序号:"))
    return selectNum
3、定义数据初值,保存原有的学生信息

  •  代码编写: 
#三、定义数据初值,保存原有的学生信息
#保存学生用户的信息,是可以用到列表,但是每个学生数据库上的信息,可能会包含姓名,性别,这个时候显然列表是无法做到的,所以我们用字典存储比较方便
student_values={
    "张三":{"性别":"男","出生日期":"2004-5-10","课程名":"python","成绩":"85"},
    "李四":{"性别":"女","出生日期":"2003-7-11","课程名":"java","成绩":"90"},
    "王五":{"性别":"男","出生日期":"2004-8-24","课程名":"数据库基础","成绩":"71.2"},
}
4、添加学生用户信息

  •  代码编写: 
#四、添加学生用户信息
#用户选择序号1,提示用户需要添加学生姓名、性别、出生日期等信息,然后保存到上面定义的字典中去
def addStulnfo():
    print("你当前是做添加用户操作,请输入要添加的学生用户的信息---")
    name=input("姓名:")
    sex=input("性别:")
    birthday= input("出生日期:")
    courseName = input("课程名:")
    grade = input("成绩:")
    student_values[name]={"性别":sex,"出生日期":birthday,"课程名":courseName,"成绩":grade}
    for i in student_values.items():
        print(i)
    #print(student_values)#输出学生用户信息
5、删除学生用户信息

  •  代码编写: 
#五、删除学生用户信息
#用户选择序号2,提示用户需要删除的学生用户信息
def delStulnfo():
    print("你当前是做删除用户操作,请输入要删除的学生用户的信息---")
    name=input("姓名:")
    del student_values[name]
    for i in student_values.items():#输出学生用户信息
        print(i)
6、修改学生用户信息

  •  代码编写: 
#六、修改学生用户信息
#用户选择序号3,提示用户需要修改的学生用户信息
def modStulnfo():
    print("你当前是做修改用户操作,请输入要修改的学生用户的信息---")
    name = input("姓名:")
    sex = input("请输入要修改后的,\n性别:")
    birthday = input("请输入要修改后的,\n出生日期:")
    courseName = input("请输入要修改后的,\n课程名:")
    grade = input("请输入要修改后的,\n成绩:")
    print(student_values)# 输出学生用户信息
7、查询学生用户信息
  •  代码编写: 
#七、查询学生用户信息
#用户选择序号4,提示用户需要查询的学生用户信息
def secStulnfo():
    print("你当前是查询用户操作,请输入要查询的学生用户的信息---")
    name = input("姓名:")
    print(student_values[name])#输出指定学生用户信息
8、显示学生用户信息

  •  代码编写: 
#八、显示学生用户信息
#用户选择序号5,提示用户需要显示的学生用户信息
def showStulnfo():
    print("你当前是显示用户操作,当前的管理系统全部用户信息如下:")
    for i in student_values.items():
        print(i)
9、退出学生用户信息

  •  代码编写: 
#九、退出学生用户信息
#用户选择序号6,提示用户需要退出系统
def exitStulnfo():
    print("你已经退出学生信息管理系统,谢谢使用!")

10、根据用户输入的选择序号,判断并执行不同功能

while True:
    funcMenu()#调用显示菜单函数
    number = gatSelcet()#调用用户选项序号函数
    if number==1:
        addStulnfo()
        pass
    elif number==2:
        delStulnfo()
        pass
    elif number==3:
        modStulnfo()
        pass
    elif number==4:
        secStulnfo()
        pass
    elif number==5:
        showStulnfo()
        pass
    elif number == 6:
        exitStulnfo()
        break
    else:
        print("你的输入有误,请重新输入....")

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是第八篇笔记。 ### Python 文件操作 #### 文件操作基础 - 文件操作是指对计算机硬盘上的文件进行读写操作,Python 中的文件操作是通过内置的 `open()` 函数实现的。 - `open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)` 函数用于打开一个文件,并返回文件对象。 - `file`:要打开的文件名(包含路径)。 - `mode`:文件打开的模式,有读模式('r')、写模式('w')、追加模式('a')等。 - `buffering`:缓冲区大小,0 表示不缓冲,1 表示缓冲一行,大于 1 表示缓冲区大小,负数表示使用默认缓冲区大小。 - `encoding`:文件编码格式。 - `errors`:错误处理方式。 - `newline`:换行符。 - 文件对象的方法: - `read(size=-1)`:读取文件内容,`size` 表示读取的字节数,不指定表示读取整个文件内容。 - `readline(size=-1)`:读取文件中的一行内容,`size` 表示读取的字节数,不指定表示读取整行内容。 - `readlines(hint=-1)`:读取所有行并返回一个列表,`hint` 表示读取的字节数,不指定表示读取全部行。 - `write(string)`:将字符串写入文件。 - `writelines(sequence)`:将字符串序列写入文件,序列中每个元素都是字符串。 #### 文件操作示例 - 打开文件:`file = open('file_name', 'r')`。 - 读取文件内容:`content = file.read()`。 - 关闭文件:`file.close()`。 - 读取文件中的一行内容:`line = file.readline()`。 - 逐行读取文件内容:`for line in file: print(line)`。 - 写入文件内容:`file.write('Hello World!')`。 - 写入多行内容:`file.writelines(['Hello', 'World', '!'])`。 #### 文件操作进阶 - 使用 `with` 语句可以自动关闭文件,避免忘记关闭文件而导致的问题。 - 示例: ```python with open('file_name', 'r') as file: content = file.read() ``` - 使用 `os` 模块可以对文件进行更加高级的操作,如文件重命名、删除等。 - 示例: ```python import os os.rename('file_name', 'new_file_name') # 重命名文件 os.remove('file_name') # 删除文件 ``` ### Python 面向对象编程 #### 面向对象编程基础 - 面向对象编程是一种编程思想,将程序中的对象看作是相互交互的实体,通过它们之间的交互来完成程序的功能。 - 类(class)是面向对象编程中的一个重要概念,它是一种用户自定义的数据类型。 - 类中包含属性(特征)和方法(行为),属性指对象的数据成员,方法指对象的行为成员。 - 类的定义: ```python class ClassName: # 类属性 attribute = value # 构造函数 def __init__(self, arg1, arg2, ...): self.arg1 = arg1 self.arg2 = arg2 ... # 类方法 def method(self, arg1, arg2, ...): ... ``` - 类的实例化: ```python object_name = ClassName(arg1, arg2, ...) ``` - 对象的属性和方法: ```python object_name.attribute # 访问对象的属性 object_name.method(arg1, arg2, ...) # 调用对象的方法 ``` #### 面向对象编程示例 - 示例:定义一个 `Rectangle` 类,实现矩形的面积和周长计算。 ```python class Rectangle: # 类属性 name = 'Rectangle' # 构造函数 def __init__(self, width, height): self.width = width self.height = height # 类方法 def area(self): return self.width * self.height def perimeter(self): return 2 * (self.width + self.height) ``` - 使用示例: ```python rectangle = Rectangle(3, 4) print(rectangle.name) # 输出 'Rectangle' print(rectangle.area()) # 输出 12 print(rectangle.perimeter()) # 输出 14 ``` ### 总结 本篇笔记介绍了 Python 中的文件操作和面向对象编程基础,包括文件操作函数的使用、类的定义、对象的实例化和属性、方法的访问等。了解和掌握这些内容可以帮助我们更好地进行 Python 编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值