python,nine day

函数

def 关键字 函数名:

def my_len():
  l = [1,2,3,4]
  count = 0
  for i in l:
    count +=1
print(count)

> my_len #执行函数 函数名()
> ##### 函数的优点:
> 减少代码的重复率。
> 增强代码的阅读性。
>
> ##### 函数主要目的
> 封装一个函数
>
#### 函数的返回值return
>1,函数中如果遇到return,则直接结束函数。
>2.给函数的执行者返回值。#执行函数 函数名()
> (1)return None
> (2)return 单个值 原封不动返回
> (3)return 多个值 一个元祖,所有的返回值作为元祖的每一个函数

> def my_len():
>   s = 'iosiodfisng223oji'
>   count = 0
>   for i in s:
>     count+=1
>   return count
> print(my_len())
> def funcl():
>   a = 1
>   b = 2
>   c = a+ b
>   d ='alex'
>   e = [1,2,3]
>   return c,d,e
> ret = funcl()
> print(ret,type(ret))

  



> 工作中,函数中尽量不要出现print
>
#### 函数的传参
> ##### 实参
> 1.位置参数:按顺序一一对应
> ``````python
> def funcl(a,b):
> c = a + b
> d = a - b
> return a
> return b
> print(funcl(1,2))
> ``````
> 三元运算:只针对于简单的if else 这样的结构。

> def conpare(x,y):
>     return x if x>y else y
> print(conpare(1,2))

> 2.关键字参数:可以不按照顺序,但是必须一一对应

> def funcl(x,y):
>     return x + y
> print(funcl(y=2,x=1))

> 3.混合传参:关键字参数一定要在位置参数后面

> def funcl(a,b,x,y):
>     return x + y
> name = 'alex'
> print(funcl(3,4,name,y=2,x=1))

> 形参
> 1.位置参数:按照顺序 一一对应

> def func(x,y,z):
>     print(x,y,z)
> func(1,2,3)

> 2.默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值
> 应用场景:不经常改变的值

> def funcl(x,y,a=666):
>     print(x,y,a)
> funcl(1,2)

默认参数的陷阱
>默认参数若是可变的数据类型,它始终使用的是一个。

> def funcl(x,l=[]):
>     l.append(x)
>     return l1
> ret = funcl(1)
> print(ret,id(ret))
> ret1 = funcl(100)
> print(ret,id(ret))

存储姓名和年龄写入文件的函数

def namelist(name,sex=''):
'''存储姓名和年龄'''
    with open('a',encoding='utf-8',mode='a') as f1:
    f1.write('{}|{}\n'.format(name,sex))
while 1:
    name,sex = input('请输入姓名,性别:').strip().replace('',',').split(',') 
#将中文逗号换成英文的逗号,然后以逗号分开
    if name.upper() == 'Q':break
        if sex.strip():
        namelist(name,sex)
    else:
        namelist(name)
    

猜你喜欢

转载自www.cnblogs.com/study-learning/p/9485111.html