python笔记9—day9

1、函数

  # 定义了之后,可以在任何需要它的地方调用

  # 没有返回长度,只是单纯的打印

s = '金老板小护士'
def my_len():  #自定义函数
    i = 0
    for k in s:
        i += 1
    print(i)
length = my_len()
print(length)

2、返回值的3种情况

# 没有返回值 —— 返回None

  # 不写return

  # 只写return:结束一个函数的继续

  # return None —— 不常用

#不写return
s='hhhhhhh'
def my_len():
    i=0
    for x in s:
        i +=1
ret=my_len()
print(ret)

#只写return
s='hhhhhhh'
def my_len():
    i=0
    for x in s:
        i +=1
    return 
ret=my_len()
print(ret)

#return None
s='hhhhhhh'
def my_len():
    i=0
    for x in s:
        i +=1
    return None
ret=my_len()
print(ret)
View Code

# 返回1个值

  # 可以返回任何数据类型

  # 只要返回就可以接收到

  # 如果在一个程序中有多个return,那么只执行第一个

#只执行第一个return
s='hhhhhhh'
def my_len():
    i=0
    y=0
    for x in s:
        i +=1
    return i
    y +=1
    return i
ret=my_len()
print(ret)
View Code

# 返回多个值

  # 用多个变量接收:有多少返回值就用多少变量接收

  # 用一个变量接收: 得到的是一个元组

#多个变量接收
def func():
    return 1,2,3
x,y,z=func()
print(x,y,z)

#一个变量接收
def func():
    return 1,2,3
r=func()
print(r)
View Code

3、参数

  #没有参数

    #定义函数和调用函数时括号里都不写内容

  #有一个参数

    #传什么就是什么

  #有多个参数

    #位置参数

def my_sum(a,b):#括号里面是形参
    print(a,b)
    res = a+b  #result
    return res
ret = my_sum(1,2)#括号里面是实参
print(ret)
View Code

4、站在实参的角度上:

#按照位置传参

#按照关键字传参

#混着用可以:但是 必须先按照位置传参,再按照关键字传参数;不能给同一个变量传多个值

#位置传参
def my_sum(a,b):
    print(a,b)
    res = a+b  #result
    return res
ret = my_sum(1,2)
print(ret)

#关键字传参
def my_sum(a,b):
    print(a,b)
    res = a+b  #result
    return res
ret = my_sum(a=1,b=2)
print(ret)

#混着用(但不能变成a=2,会报错)
def my_sum(a,b):
    print(a,b)
    res = a+b  #result
    return res
ret = my_sum(1,b=2)
print(ret)
View Code

5、站在形参的角度上

#位置参数:必须传,且有几个参数就传几个值

#默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的

def classmate(name,sex=''):
    print('%s : %s'%(name,sex))
classmate('')
classmate('','')
View Code

6、#定义函数的时候:

#位置参数 : 直接定义参数

#默认参数,关键字参数 :参数名 = '默认的值'

#动态参数 : 可以接受任意多个参数

  #参数名之前加*,习惯参数名args,

  #参数名之前加**,习惯参数名kwargs

#顺序:位置参数,*args,默认参数,**kwargs

def func(x,*args,default = 1,**kwargs):
    print(x,args,default,kwargs)

func(1,2,3,4,5,default=2,a = 'aaaa',b = 'bbbb',)

7、动态参数的另一种方式

def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    print(args)

func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)  #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

8、函数注释

def func():
    '''
    这个函数实现了什么功能
    参数1:
    参数2:
    :return: 是字符串或者列表的长度
    '''
    pass

 9、三元算法

a = 1
b = 5
c = a if a>b else b   #三元运算
print(c)

# 变量 = 条件返回True的结果 if 条件 else 条件返回False的结果
#必须要有结果
#必须要有if和else
#只能是简单的情况

 

def func(filename,old,new):
    with open(filename, encoding='utf-8') as f, open('%s.bak'%filename, 'w', encoding='utf-8') as f2:
        for line in f:
            if old in line:
                line = line.replace(old,new)
            # 写文件
            f2.write('kkkk')

    import os
    os.remove(filename)
    os.rename('%s.bak'%filename, filename)

func('001','001','002')

 

posted @ 2019-09-04 14:03  精灵飞舞之季的低语  阅读(151)  评论(0编辑  收藏  举报