一、函数
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 + b | a、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))
输出结果为:
张三
李四
王五