python_从函数到集合_230225

chapter5 函数

函数
  1. 是什么:组织好的、可重复使用的、用来实现特定功能的代码块

  1. 好处:

  1. 将功能封装在函数内,可供随时随地重复利用

  1. 提高代码的复用性,减少重复代码,提高开发效率

函数的定义
  1. 定义语法:

 '''
 def 函数名(传入参数):
     函数体
     return 返回值
 '''
  1. 使用步骤:先定义,后调用

  1. 注意:

  1. 参数不需要,可以省略

  1. 返回值不需要,可以省略

  1. 示例:

 '''
 定义一个函数,函数名任意,要求调用函数后可以输出以下文字:
 “请出示您的健康码以及72小时核酸证明!”
 '''
 def hesuan():
     print("请出示您的健康码以及72小时核酸证明!")
 hesuan()
函数的传入参数
  1. 作用:在函数运行的时候,接受外部传入的数据

  1. 使用示例:

 def add(x,y):
     result = x+y
     print(f"{x}+{y}的结果是:{result}")
 add(5,6)
  1. 注意事项:

  1. 函数定义中的参数(x,y),称之为形式参数

  1. 函数调用中的参数(5,6),称之为实际参数

  1. 函数的参数数量不限,使用逗号隔开

  1. 传入参数的时候,要和形参一一对应,逗号隔开

  1. 带有传入参数操作的核酸示例:

 '''
 定义一个函数,并接收一个参数传入(数字类型,表示提问)
 在函数内进行提问判断(正常范围,小于等于37.5),并输出以下内容:
 请出示您的健康码内容,并配合测量体温!
 您的体温为:37.0度,体温正常,请进!
 or
 您的提问为:37.7度,需要隔离!
 '''
 def hesuan():
     temp = float(input("请出示您的健康码内容,并配合测量体温!"))
     if temp<= 37.5:
         print(f"您的体温为:{temp}度,体温正常,请进!")
     else:
         print(f"您的体温为:{temp}度,需要隔离!")
 hesuan()
函数的返回值
  1. 是什么:函数在执行完成后,返回给调用者的结果

  1. 用法:使用关键字:return来返回结果

  1. 注意:函数体在遇到return后就结束了,所以写在return后的代码不会执行

返回值的None类型
  1. 是什么:None是类型'NoneType'的字面量,用于表示:空的,无意义的

  1. 函数如何返回None:

  1. 不使用result语句即可返回None

  1. 主动return None

  1. 使用场景:

  1. 函数返回值

  1. if判断

  1. 变量定义

函数说明文档
  1. 作用:对函数进行解释说明,帮助更好的理解函数的功能

  1. 定义语法:

 def func(x,y):
     """
     函数说明
     :param x: 参数x的说明
     :param y: 参数y的说明
     :return: 返回值的说明
     """
     函数体
     return返回值
函数嵌套使用
  1. 是什么:在一个函数中,调用另一个函数

  1. 执行流程:函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容

变量的作用域
  1. 局部变量:作用范围在函数内部,在函数外部无法使用

  1. 全局变量:在函数内部和外部均可使用

  1. 如何将函数内定义的变量声明为全局变量:在函数内使用global关键字:global变量

综合案例
 '''
 定义一个全局变量money,用来记录银行卡余额(默认500w)
 定义一个全局变量name,用来记录客户姓名(启动程序时输入)
 定义如下的函数:
 查询余额
 存款
 取款
 主菜单
 要求:程序启动后要求输入客户姓名
 查询余额、存款、取款后都会返回主菜单
 存款、取款后,都应显式一下当前余额
 客户选择退出、输入错误时,程序退出,否则一直运行
 '''
 money = 5000000
 name = input("请输入您的姓名")
 ​
 def main_menu():
     print(f"{name},您好,请选择操作:")
     print("查询余额\t[输入1]")
     print("存款\t\t[输入2]")
     print("取款\t\t[输入3]")
     print("退出\t\t[输入4]")
     returninput("请输入您的选择:")
 ​
 def enquire_account_balance(show_header):
     ifshow_header:
         print("查询结果如下:")
     print(f"当前账户余额为:{money}元")
 ​
 def deposit(num):
     global money
     money += num     
     print("存款结果如下:")
     print(f"您好,你已存入{num}元!")
     enquire_account_balance(False)
 ​
 def withdraw(num):
     global money
     money -= num
     print("取款结果如下:")
     print(f"您好,你已取出{num}元!")
     enquire_account_balance(False)
 ​
 def exit_func():
     print("操作已结束!")
 ​
 while True:
     keyboard_input = main_menu()
     if keyboard_input == "1":
         enquire_account_balance(True)
         continue#通过continue进行循环
     elif keyboard_input == "2":
         num = int(input("How much?"))
         deposit(num)
         continue
     elif keyboard_input == "3":
         num = int(input("How much?"))
         withdraw(num)
         continue
     else:
         print("程序退出!")
         break

chapter6 数据容器

数据容器入门
  1. 是什么:一种可以存储多个元素的python数据类型

  1. python有哪些数据容器:列表list、元组tuple、字符串str、集合set、字典dict

list列表
  1. 定义语法:

 xxx = [元素1,元素2,元素3]
  1. 是什么:数据容器内的每一份数据,都称之为元素

  1. 元素类型:元素类型没有任何限制,列表也可以是元素,这样便定义了嵌套列表

  1. 特点:

  1. 可以容纳多个元素,上限为2**63-1

  1. 可以容纳不同类型的元素(混装)

  1. 数据是有序存储的(有下标符号)

  1. 允许重复数据存在

  1. 可以修改(增删等)

list的下标索引
  1. 是什么:

  1. 列表中的每一个元素都有编号,编号即下标索引。

  1. 从前向后时,从0开始递增

  1. 从后向前时,从-1开始递减

  1. 通过下标索引取出对应位置元素:

列表[下标]

  1. 注意:超出下标索引的取值范围则无法取出元素,并且会报错

列表的常用操作
  1. 查询下标值index:列表.index(元素)

  1. 修改特定位置的元素值:列表[下标]=值

  1. 插入insert:列表.insert(下标,元素):在指定下标处,插入指定的元素

  1. 追加元素append、extend

  1. 列表.append(元素):在列表中追加一个元素

  1. 列表.extend(容器):将数据容器的内容依次取出,追加到列表尾部

  1. 删除元素del、pop、remove

  1. del 列表[下标]:删除列表指定下标元素

  1. 列表.pop(下标):删除列表指定下标元素,并把元素变成返回值

  1. 列表.remove(元素):从前到后,删除此元素第一个匹配项

  1. 清空列表clear:列表.clear()

  1. 统计:

  1. 某一元素在列表中出现的次数count:列表.count(元素)

  1. 列表中的元素数量len:len(列表)

列表的循环遍历
  1. 遍历:将容器内的元素依次取出并处理,称之为遍历操作

  1. 如何遍历:可以是用while或者for循环

  1. for循环的语法:

for临时变量in数据容器:

对临时变量进行处理

  1. for循环和while循环对比:

  1. for循环更简单,while循环更灵活

  1. for用于从容器内依次取出元素并处理,while用于任何需要循环的场景

  1. 示例:取出列表内的偶数

 my_list = [1,2,3,4,5,6,7,8,9,10]
 #for
 even_list = []
 for x in my_list:
     if x % 2 == 0:
         even_list.append(x)
 print(f"{even_list}")
 #while
 even_list1 = []
 index = 0
 while index < len(my_list):
     element = my_list[index]
     if element % 2 == 0:
         even_list1.append(element)
     index += 1
 print(f"{even_list1}")
元组的定义和操作
  1. 定义方式:

(元素,元素,元素)

t1 = tuple()

t2 = ()

t3 = (1,2,3)

  1. 操作方法:

  1. 元组.index(元素)

  1. 元组.count(元素)

  1. len(元组)

  1. 注意:不可修改元组内容

  1. 特点

  1. 可以容纳多个数据

  1. 可以容纳不同类型的数据

  1. 数据是有序存储的(下标索引)

  1. 允许重复数据存在

  1. 不可以修改(增删等)(如果嵌套list,可以修改内部的list)

  1. 支持for/while循环

字符串的定义和操作
  1. 字符串为什么是数据容器:字符串可以看作是字符的容器,支持下标索引等特性

  1. 常用操作方法:

  1. 特点:

  1. 只可以存储字符串

  1. 长度任意(取决于内存大小)

  1. 支持下标索引

  1. 允许重复字符存在

  1. 不可以修改(增删等)

  1. 支持for/while循环

  1. 示例:分割字符串

 '''
 给定一个字符串:"xiaoming xiaowang xiaofang"
 统计字符串中有多少个an字符
 将字符串中的空格,全部替换为字符|
 并按照|将字符串分割,得到列表
 '''
 str1 = "xiaoming xiaowang xiaofang"
 count = str1.count("an")
 print(f"字符串{str1}中有:{count}个an字符")
 new_str1 = str1.replace(" ","|")
 print(f"字符串{str1},被替换空格后,结果为:{new_str1}")
 split_new_str1 = new_str1.split("|")
 print(f"字符串{new_str1}中,按照|分割后,得到:{split_new_str1}")
数据容器(序列)的切片
  1. 是什么:内容连续、有序,支持下标索引的一类数据容器

  1. 哪些数据容器可以视为序列:列表、元组、字符串

  1. 序列如何做切片:

 序列[起始:结束:步长]
  1. 起始可以省略,省略则从头开始

  1. 结束可以省略,省略则到末尾结束

  1. 结束不包含那个元素本身

  1. 步长可以省略,省略则默认为1

  1. 步长可以为负数,此时倒序执行(起始和结束也需倒过来)

  1. 示例:

 '''
 有字符串“ABCD,HGFE,IJKL”,尝试得到“EFGH”
 '''
 #1 直接倒序取出
 str1 = "ABCD,HGFE,IJKL"
 new_str1 = str1[8:4:-1]
 print(new_str1)
 #2 先取出再倒序
 str1 = "ABCD,HGFE,IJKL"
 new_str2 = str1[5:9]
 new_str2n = new_str2[::-1]
 print(new_str2n)
 #3 split分割成列表,取出对应元素再倒序
 str1 = "ABCD,HGFE,IJKL"
 str1_list = str1.split(",")
 new_str1_list = str1_list[1]
 new_str3 = new_str1_list[::-1]
 print(new_str3)
集合的定义与操作
  1. 特点:

  1. 集合内不允许重复元素(去重)

  1. 集合内元素是无序的(不支持下标索引)

  1. 定义方式:

 {元素,元素,元素}

常用操作:

  1. 如何遍历集合元素:

  1. 可以用for循环进行遍历

  1. 不可以用while循环遍历,因为集合不支持下标索引

  1. 集合的特点:

  1. 可以容纳多个数据

  1. 可以容纳不同类型的数据(混装)

  1. 数据是无序存储的(不支持下标索引)

  1. 不允许重复数据存在

  1. 可以修改(增删等)

  1. 支持for循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值