day9 python全栈学习笔记

时间:2022-12-31 13:54:34

函数

函数
1,函数的定义,def
2,函数的调用
3,函数的返回值 return
函数的参数
1,形参
位置参数,必须传
*args:可以接收任意多个位置参数
默认参数:可以不接
**kwargs :可以接受多个关键字参数
2,实参
按照位置传参
按照关键字传参
3.返回值
不写返回值
不写return
return
return None
返回一个值
结束函数可以返回任意一个值
返回多个值
多个值之间用逗号隔开,接收的时候如果用一个变量接收,则是元组,多个相应的变量接收则会拿到每个变量相应的值

函数实践代码

def count(s):
    i = 0
    for j in s:
        i += 1
    return i

s = 'bassdiuhfs'
print(count(s))

#形参可以使事先确定好的,也可以后期赋值。
def classmate(name,sex=''):
    print('{},{}'.format(name,sex))

classmate('laoda')
classmate('laoer',sex='')


def classmate(name,sex):      #name,sex是形参
    print('{},{}'.format(name,sex))

classmate('laoda','')        #这里是实参
classmate('laoer',sex='')    #实参


#动态参数  我们用*args来表示。接收的是任意位置传参的值


def sum(*args):
    n = 0
    for i in args:
        n += i
    return n
res = sum(4,5,6,7)
res1 = sum(4,56,7)

print(res)
print(res1)

#动态参数   **kwargs 接收的是任意关键字传参

def text(**kwargs):
    print(kwargs)

text(a=2,c=4,f=0)

#动态传参
#将*args和**kwargs组合起来,但必须吧*args放在**kwargs之前,因为我们默认是优先位置传参,还有我们特殊定义的关键值也应该放在**kwargs之前,
#故我们再使用**kwargs时,一般都放在最后。

def test(*args,defalut=1,**kwargs):
    print(args,defalut,kwargs)

test('sdihsif',defalut=2,c=3,b=4)

#之前的两个作业题
li = ['alex','laoda']
s1 = ''.join(li)
print(s1)
sum = 0
for i in range(1,100):
    if i%2 == 0:
        sum += i
    else:
        sum -= i

for i in range(100,-1,-1):
    print(i)

count = 0
content = input('>>>')
for i in range(len(content)):
    if i%2 == 0 and content[i].isdigit():
        count += 1
print(count)