切片只有在python独有的功能,能将对象中的内容切出来。
语法:object[起始下标:结束下标:步数]
结束下标:取不到改下标的值
步数(step):正数表示从左向右进形切片,负数表示从右到左进行切片,如果不写默认 step=1
一.切objdaect的单个值 :
>>> a=[1,2,3,4,5,6,7]
>>> a[2]
3
>>>
语法:object[下标]
注意:当改下标不存在时会报错
二.切取多个数值
1.全是正数(index_start为正 index_end为为正 step为正)
object [start:end :step]
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[:5:]
[1, 2, 3, 4, 5]
>>> a[::]
[1, 2, 3, 4, 5, 6, 7]
start:不给定值默认从0开始 index_end(结束下标):不给定值默认为最后一个值的下标 且取得到该值
2.一正一负
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[5:-1]#index_start=5 index_start=6 step=1
[6]
>>> a[1:-4]#index_start=1 index_end=3 step=1
[2, 3]
注意:object的最后一个值也下标不仅为从左到右数的正数值 还可以为从右到左表示为-1
例子[ 1 , 2 , 3 , 4 , 5 , 6, 7 ]
index: 0 1 2 3 4 5 6
index: -7 -6 -5 -4 -3 -2 -1
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[6::-1] #step=-1表示从右到左切割
[7, 6, 5, 4, 3, 2, 1]
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[1:6:-1] #index_start=1 index_end=6 step=-1
[]
下标是从1~6但是step=-1表示从右到左切割 因此相互矛盾 输出一个空
注意:index_start 和index_end 与step矛盾时 不会报错 只输出一个空对象
3.全为负
下标从-1开始 输出时从后到前输出
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[-1:-7:-1]
[7, 6, 5, 4, 3, 2]
>>> a[-1::-1]
[7, 6, 5, 4, 3, 2, 1]
index_start=-1 表示从列表的最后一个值开始
index_end=-7 表示在列表的最后一个值结束 但是取不到 如果不给index_end的值表示在列表的最一个值结束 但是取得到该值
重要:当切片时index_end的下标超出了object的下标 不会报错 会从起始下标把该对象的数值取完
一.函数定义:
def 函数名 :
#缩进 函数体
#缩进 返回值
调用函数:函数名(参数)
>>> def my_X():
... print("hello word !")
...
>>> print(my_X())
hello word !
None
没有返回值,会默认返回一个None
二.函数名中的形参类型
2.1:自定义参数(位置参数)
自定义参数:函数命中的形参就只是形参没有给定任何初始值,是必须要实参来给形参赋值的zhu
>>> def sum(x,y):
... return x+y
...
>>> print(sum(2,3))
5
2.2:默认值参数
默认值参数:在函数中的形参给定了一个初始值,但在调用该函数时可以不用给定实参,也可以给定一个实参来替换默认值:
>>> def num (x=3):
... return x**x
...
>>> print(num())
27
>>> print(num(4))
256
注意:当位置参数和默认值参数一起用时,默认值参数写在位置参数后面。
2.3:可变参数
定义:* 表示可变参数
可变参数:可以传入一个或多个值,系统会自动将这些值自动封装成元组
>>> def sum(*num):
... print(num)
...
>>> print(sum(1,2,3,4,5))
(1, 2, 3, 4, 5)
None
>>> def sun(*num):
... sum =0
... for i in num:
... sum +=i
... return sum
...
>>> print(sun(1,2,3,4,5))
15
如果想将list()中的每一值传入函数中 可以使用 * list() ,直接传入list() 形参接受到的是 (list(),)元组里的一个列表
>>> s = [1,2,3,4,5,6]
>>> def output(*num):
... print(num)
...
>>> print(output(*s))# *加列表 是将列表中的元素分开逐个传入函数中的形参
(1, 2, 3, 4, 5, 6)
None
>>> print(output(s)) # 不加 *号 直接传列表 是将整个列表 当作一个值传入 并在形参接受这个列表时将该列表当作一个元素封装成元组
([1, 2, 3, 4, 5, 6],)
None
2.4:关键字参数
调用函数时传入任意参数时系统会自动把参数封装成字典。
定义:函数名(** 变量)
在传入实参时,应是:key = value(值)
>>> def one(**k):#命名关键字
... print(k)
...
>>> print(one(name="zhangsan",age=18,sex="男"))
{'name': 'zhangsan', 'age': 18, 'sex': '男'}
None
2.5:命名关键字 参数
在调用函数时,必须出现关键字,不然会报错,定义命名关键字是不能给关键字赋初值
定义:函数名(*,关键字)
>>> def towe(*,name,age):
... print(name,age)
...
>>> print(towe(name="zhangsan",age=18))
zhangsan 18
特别注意:在定义这些参数是有顺序的,位置参数 默认值参数 可变参数 命名关键字参数 关键字参数