一、函数的补充
1.变量的作用域
变量的作用域指的是变量的作用范围(即哪里可以使用这个变量,哪里不可以)
主要分为两类:局部变量和全局变量
局部变量即定义在函数体内的变量,只能在函数内生效
局部变量在函数体内部临时保存,执行完函数后局部变量被销毁
全局变量即函数内外都能生效的变量
global关键字:
global可以在函数体内修改全局变量
不使用global时:
作为全局变量的num并没有改变,500是作为局部变量的num的值
使用global后:
函数内的num便作为全局变量,可以在函数体内改变它的值
2.函数综合案例
以下为自己运行的代码:
money=5000000 #定义初始金额
name=input("请输入你的名字:")
def deposit():
global money #global可以在函数内改变全局变量money
yuan=int(input("请问你要存多少钱:"))
money=money+yuan
print(f"你现在有{money}元") #输出剩余金额
def withdrawal():
global money
yuan = int(input("请问你要取多少钱:"))
money = money - yuan
print(f"你现在有{money}元")
def check():
print(f"你现在有{money}元")
def menu():
fun=int(input("请选择你要实现的功能:\n 1.存款\n 2.取款\n 3.查询余额\n 4.退出\n"))#用数字1-4来选择菜单的功能
return fun
while(1):
Fun=menu()
if(Fun==1):#存款
deposit()
continue
elif(Fun==2):#取款
withdrawal()
continue
elif(Fun==3):#显示当前金额
check()
continue
elif(Fun==4):#退出
break
else: #输入错误
break
二、列表
1.列表的定义:
列表可以依次存储多个数据,且可以为不同的数据类型,支持嵌套
2.列表的下表索引
我们可以使用下标索引取出列表中特定位置的数据
正向索引:
列表中第一个元素下标为0,第二个为1,第三个为2……
反向索引:
列表中最后一个元素为-1,倒数第二个为-2……
嵌套列表的索引:
只需要写出每一层列表(元素)所处的位置
示例:
my_list=[1,2,3]
#正向索引
print(my_list[0])
print(my_list[1])
print(my_list[2])
#反向索引
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])
#嵌套索引
my_other_list=[[1,2,3],[4,5,6]]
print(my_other_list[0][0])
print(my_other_list[0][1])
print(my_other_list[0][2])
print(my_other_list[1][0])
print(my_other_list[1][1])
print(my_other_list[1][2])
3.列表的常用操作
1.方法
方法就是定义在class(类)的函数
方法与函数的用途相同,但使用格式不同:
(1)查找某元素的下标:index
功能:查找你要查找的元素的下标,若列表中不存在该元素,则报错ValueError
语法:列表.index(查找的元素)
(2)修改特定下标索引的值
直接列表[选择的下标]=改变后的值
例如mylist[0]=4,则图中的1会变为4
(3)指定下标位置插入新元素:insert
功能:在列表中选取的下标位置插入新的元素
语法:列表.insert(插入的位置,插入的元素)
示例:
(4)在列表最后追加元素:append,extend
append可以在列表最后追加一个元素,而extend可以在列表最后追加一批元素
语法:列表.append/extend(追加的元素)
(4)列表删除元素:del,pop
del(删除元素)用法:del列表[下标]
pop(取出元素,并可以返回取出的元素)用法:列表.pop[下标]
(5)删除某元素在列表中的第一个匹配项:remove
用法:列表.remove(删除的元素)
其中第一个1作为第一个匹配项被删除,第二个留下
(6)列表的清空:clear
用途:直接清空列表
用法:列表.clear()
(7)统计某元素在列表中的数量:count
用法:列表.count(要统计的元素)
(8)统计列表一共有多少元素:len()
用法:len(列表)
4.列表的遍历
将容器中的元素依次取出并处理成为遍历
(1)遍历-while循环
(2)遍历-for循环
三、元组(tuple)
元组与列表相似,但定义完便不能修改
当我们需要在程序中封装数据且不希望被修改,使用元组
1.元组的定义
定义单个元素的元组时必须在元素的后面加上逗号,否则不视为元组
例如:("hello")为字符串
("hello",)为元组
2.元组的嵌套
与列表相同,类似((1,2,3),(4,5,6))为嵌套元组
3.元组的方法
与列表的用途与用法基本相同,但只有index,count,len(元组)
4.元组的遍历
与列表相同,例如:
四、字符串
字符串是字符的数据容器,可以存放任意数量的字符
1.下标索引取值
与列表类似,例如:str="name"
若要取值到"m":i=str[2]或i=str[-2]
PS:字符串不能进行修改
2.index方法
其中,从第一个字符m开始算(包括空格),is的首字母i下标为8,则输出8。
3.字符串的替换
其中my_str并没有改变,my_new_str才是将my改成了我的,因此是得到一个新字符串而不是修改
4.字符串的分割
用法:字符串.split("分割线(以什么元素来分割)")
分割的结果得到一个列表
5.字符串的规整操作:strip用法:
用法:字符串.strip("去除的字符串")
不传入参数时,去除首尾空格
示例:
示例中传入参数12,实际上是"1""2"这两个字符串,所有的1和2都将被去除
6.统计字符串中某一个小字符串出现的次数
与列表相似,使用字符串.count("小字符串"):
7.统计字符串的长度使用len()
PS:空格也会被计算
附:序列(字符串,列表,元组皆为序列)的操作
示例:
本日为工作日,需要上课,课外学习的时间不多,共勉