python_day[4-5] 【函数】

一、函数
1、基本使用
【使用 def 定义一个函数】

def 函数名(参数列表):
函数体
return 返回值列表

def test(string):
    for i in range(2):
        print(string)

test("hello")
test("world")
test("你好")
test("python")
输出结果:
hello
hello
world
world
你好
你好
python
python

2、参数传递
def 函数名(非可选参数列表,可选参数 = 默认值):
函数体
return 返回值列表

def test(a,b):
    if a>b :
        return 10
    else:
        return 20
print(test(2,3))
输出结果为:
20

【调用时没有传入对应得参数值,则使用函数定义时得默认值代替】

def test(a,b=1):
    if a>b :
        return 10
    else:
        return 20
print(test(2))
输出结果为:
10

!!!非可选参数一定要放在可选参数的后面

若非可选参数在可选参数前面,那么会出现错误:
SyntaxError: non-default argument follows default argument

支持函数按照参数名称方式传递参数

def test(a,b,c,d,e,f,g):
    print(a,b,c,d,e,f,g)
test(b=2,a=1,d=4,c=3,f=6,e=5,g=7)
输出结果为:
1 2 3 4 5 6 7

二、变量的作用域
1、局部:函数内部使用,仅在函数内部有效

def test(x,y):
    z = x+y
    return z

s = test(1,2)
print(s)
print(z)
输出结果为:
3
Traceback (most recent call last):
  File "D:/python/PycharmProjects/untitled/hello.py", line 11, in <module>
    print(z)
NameError: name 'z' is not defined #此处报错!!!!

2、全局:函数之外定义,在程序执行全过程有效 ,使用global声明

def test(x,y):
    global z
    z = x+y
    return z

s = test(1,2)
print(s)
print(z)
输出结果为:
3
3

三、组合数据:集合、序列、映射
1、集合类型(set):元素之间无序,相同元素在集合中唯一存在 ; {}表示 ; 包含0个或多个数据项的无序组合

a = {100,'100',20,'20',20,100}
print(a)
print(type(a))
输出结果为:
{'100', 100, 20, '20'}
<class 'set'>

四个操作符:交(&)、并(|)、差(-)、补(^)

a = {100,'100',20,'20',20,100}
b = {200,'100',10,'50','nihao'}
print(a&b)#a、b中同时有的
print(a|b)#a、b中所有元素
print(a-b)#a中有,b中没有的
print(a^b)#a、b中非共同元素
{'100'}
{100, 'nihao', 200, 10, '50', 20, '20', '100'}
{100, '20', 20}
{100, 20, 'nihao', 200, 10, '50', '20'}

操作函数和方法
a.add()
a.remove()
len(a)
x in a
x not in a
a.clear()

a = {100,'100',20,'20',20,100}
a.add("nihao")#若“nihao”不在a中,增加到a中去
print(a)
a.remove(100)#若a中有元素 100,删除该元素
print(a)
print(len(a))
print(20 in a)#20 是 a的元素,return True;else return False
print("nihao" not in a)#“nihao” 不是 a的元素,return True;else return False
a.clear()
print(a)

【set()函数将其他的组合数据类型变成集合类型,也可以生成空集合变量】

输出结果为:
{'20', 100, 20, '100', 'nihao'}
{'20', 20, '100', 'nihao'}
4
True
False
set()

2、序列类型:元素向量,元素之间存在先后关系,序号访问
代表:str 、 list 、 tuple
a、列表(list)
用 [ ] 表示,元素可以不同,list()函数可以将集合或字符串类型转换成列表类型

a = [100,'100',20,'20',20,100]
print(a)
print(type(a))
输出结果为:
[100, '100', 20, '20', 20, 100]
<class 'list'>

序列类型通用的操作符和函数

操作符描述
x in a若元素 x 在序列 a 中,返回True,否则返回False
x not in a若元素 x 不在序列 a 中,返回True,否则返回False
a + ba、b连接
a * n 或者 n * a序列a 复制 n次
a[i]【索引】返回序列第 i 个元素
a[i:j]【切片】返回序列第 i 个元素 到 第 j 个元素的子序列,不包括 第 j 个元素
a[i:j:k]返回序列第 i 个元素 到 第 j 个元素,步长为 k 的子序列
函数描述
len(a)a序列的长度(元素个数)
min(a)a序列中最小元素
max(a)a序列中最大元素
a.index(e)a序列中第一次出现 元素e 的位置
a.count(e)a序列中出现 元素e 的总次数
a = [100,'100',20,"nihao","python",23,20,10,20]
b = [10,20,30,40,100]
print(20 in a)
print(20 not in a)
print(a + b)
print(b * 2)
print(a[1])
print(a[1:3])
print(a[0:5:2])
print(len(a))
print(max(b))
print(min(b))
print(a.index(20))
print(a.count(20))
输出结果为:
True
False
[100, '100', 20, 'nihao', 'python', 23, 20, 10, 20, 10, 20, 30, 40, 100]
[10, 20, 30, 40, 100, 10, 20, 30, 40, 100]
100
['100', 20]
[100, 20, 'python']
9
100
10
2
3

⭐【索引】——获取列表的一个元素
可以用遍历循环对列表中的元素进行遍历
for 循环变量 in 列表变量:
语句块

a = [100,'100',20,"nihao","python",23,20,10,20]
for i in a:
    print(i,end=" ")
输出结果为:
100 100 20 nihao python 23 20 10 20 

列表的操作方法
a.append()
a.insert()
a.pop()
a.remove()
a.reverse()
a.copy()
a.clear()

a = [100,'100',20,"nihao","python",23,20,10,20]
a.append(234)#在列表最后增加一个元素x
print(a)
a.insert(1,"hello")#在列表第 i 个位置增加元素 x
print(a)
print(a.pop(2))#将列表中第i项元素取出并删除
print(a)
a.remove(20)#将列表中出现的第一个元素 e 删除
print(a)
a.reverse()#反转列表
print(a)
b = a.copy()
print(b)
a.clear()
print(a)
输出结果为:
[100, '100', 20, 'nihao', 'python', 23, 20, 10, 20, 234]
[100, 'hello', '100', 20, 'nihao', 'python', 23, 20, 10, 20, 234]
100
[100, 'hello', 20, 'nihao', 'python', 23, 20, 10, 20, 234]
[100, 'hello', 'nihao', 'python', 23, 20, 10, 20, 234]
[234, 20, 10, 20, 23, 'python', 'nihao', 'hello', 100]
[234, 20, 10, 20, 23, 'python', 'nihao', 'hello', 100]
[]

【del保留字】——删除列表中元素

del a[2]
print(a)
输出结果为:
[100, '100', 'nihao', 'python', 23, 20, 10, 20]

b、元组(tuple)
使用(),元素不能修改!!!!

a = (1,2,3,4,'nihao','python')
print(a)
print(type(a))
输出结果为:
(1, 2, 3, 4, 'nihao', 'python')
<class 'tuple'>

2、映射类型:”键-值“数据项的组合,每个元素是一个键值对
代表:dict
使用 {} 具有和集合类似的性质,即键值对之间无序且不能重复
使用方法:{键1:值1,键2:值2,…,键n :值n}

a = {'文学院':'文科','数学与金融学院':'理科','信息学院':'工科'}
print(a)
print(type(a))
print(a['文学院'])#索引
输出结果为:
{'文学院': '文科', '数学与金融学院': '理科', '信息学院': '工科'}
<class 'dict'>
文科

操作函数
len(a)
max(a)
min(a)
dict()——生成一个空字典

a = {1:'张三',2:'李四',3:'王五'}
print(len(a))
print(max(a))
print(min(a))
b = dict()
print(b,type(b))
输出结果为:
3
3
1
{} <class 'dict'>

操作方法

方法描述
a.keys()所有键信息
a.values()所有值信息
a.items()所有键值对
a.get(keys,default)键值存在返回对应值,否则返回default内容
a.pop(keys,default)键值存在删除对应键值,否则返回default内容
a.popitem()在字典中随机取出一对键值对,并以元组形式返回
a.clear()删除所有键值对
a = {1:'张三',2:'李四',3:'王五'}
print(a.keys())
print(a.values())
print(a.items())
print(a.get(4,'没有该元素'))
print(a.get(2,'没有该元素'))
a.pop(2,)
print(a)
print(type(a.popitem()))
a.clear()
print(a)
输出结果为:
dict_keys([1, 2, 3])
dict_values(['张三', '李四', '王五'])
dict_items([(1, '张三'), (2, '李四'), (3, '王五')])
没有该元素
李四
{1: '张三', 3: '王五'}
<class 'tuple'>
{}

【del保留字】——删除某一元素

a = {1:'张三',2:'李四',3:'王五'}
del a[2]
print(a)
输出结果为:
{1: '张三', 3: '王五'}

【in保留字】——判断一个键是否在dict中

a = {1:'张三',2:'李四',3:'王五'}
print(2 in a)
print(10 in a)
输出结果为:
True
False

【可用遍历循环对字典中元素进行遍历】
for 变量名 in 字典名:
语句块

a = {1:'张三',2:'李四',3:'王五'}
for i in a:
    print(a[i])
    #或者print(a.get(i))
输出结果为:
张三
李四
王五
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值