python语法基础---切片及函数

切片:

切片只有在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

特别注意:在定义这些参数是有顺序的,位置参数   默认值参数  可变参数    命名关键字参数   关键字参数

你可能感兴趣的:(python,python,开发语言,后端)