python基础学习---函数

!/usr/bin/env python
-- coding: utf-8 --
@Time : 2020/4/1 10:07
@Author : 王小白——函数
@File : 10_06_function.py

Python内置函数

例:print input len type str int float list range pop append insert keys aplit replace strip remove clear
函数特点总结:可以重复使用

函数语法【def关键字】
def 函数名(参数1、参数2、参数3): # 函数名命名规范:小写字母分开、不能以数字开头、不同单词之间用下划线隔开函数体:你希望这个函数给你实现什么功能
函数调用:函数名()

例:

def da_lao():
    print("woshidalao")
da_lao() #函数调用

例:带参数——形参/位置参数。。实际参数。。

def da_lao(name):#形参/位置参数
    print("{0}shidalao".format(name))
da_lao("解决") #函数调用、实际参数

例:带参数

def da_lao1(name="默认"):#默认参数 默认参数必须放在位置参数后面
    print("{0}shidalao".format(name))
da_lao1("ss") #函数调用,传值就取代默认参数
da_lao1()#函数调用,不传值适用默认参数

函数使用:
第一步、先用代码实现功能 还可以选取一组数据来证明自己的代码是否正确
第二步:变成函数 加def
第三步:想办法提高代码的复用性

例:请把1-100的整数相加功能 写成一个函数

def sum(m,n,k=1):
    sum=0
    for item in range(m,n,k):
        sum+=item
    print(sum)
sum(1,101)
sum(1,11,1)# 默认情况下 是按顺序赋值
sum(m=1,k=10,n=2) # 指定了参数的值,不按顺序

return函数

当你调用函数时,就会返回一个值 return后面的表达式
在函数里面相当于一个结束符号,表示函数到此为止;后面的代码不会被执行
return不能脱离函数

例:

def sum(m,n,k=1):
    sum=0
    for item in range(m,n,k):
        sum+=item
    return sum
result=sum(1,101)
print(result)

例:写函数,检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回

a=[1,0.01,'hello',[1,2,3],True]
def check_list(li):
    if len(li) >2:
        return li[0:2]
m=check_list(a)
print(m)

动态参数(不定长参数)

1、当不确定传几个参数时 *变量【必须加一个星号】
2、在函数内部作为元组来传递

def make_sandwich(*args):
    print(args)
    all=""
    for item in args:
        all+=item
    print(all)
make_sandwich("鸡蛋","生菜","肉")

关键字参数

1、 key-value **kwargs 【必须加两个星号】
2、在函数中体现为字典

def kw_function(**a):
    print(a)
kw_function(x=1,y=2)
def add_all_num(**num):
    sum=0
    for item in num:
        sum+=num[item]
    print(sum)
add_all_num(a=1,b=2,c=2)

变量作用域

a=1 #全局变量
def add(b):
    a=5 #局部变量
    global c#声明这是一个全局变量
    c=6 #赋值运算
    print(a+b)
add(10)
print(a)
print(c)

全局变量 局部变量
1、作用范围不一样 全局:整个模块里面都能调用 函数的局部变量只能用于函数
2、当全局和局部变量同名且同时存在的时候,函数优先调用局部变量
3、当局部变量没有 就优先用全局的
4、global可以声明一个全局变量

发布了10 篇原创文章 · 获赞 2 · 访问量 224

猜你喜欢

转载自blog.csdn.net/qq_34669181/article/details/105245586