Day09
函数的初始
函数:函数是以功能为导向,一个函数封装一个功能。登录,注册,文件的改的操作。。。
函数减少代码的重复性,增强了代码的可读性;
获取任意一个字符串的元素的个数
s1 = "xiaomingxiaohongxiaogang"
count = 0
for i in s1:
count += 1
print(count)
获取列表的元素个数
lst1 = [1, 2, 3]
count = 0
for i in lst1:
count += 1
print(count)
面向过程编程:
1.代码重复;
2.代码可读性不高;
初始函数
lst1 = [1, 2, 3]
def new_len():
count = 0
for i in lst1:
count += 1
print(count)
new_len()
函数的结构
lst1 = [1, 2, 3]
def new_len():
count = 0
for i in lst1:
count += 1
print(count)
new_len()
def 关键字: 定义一个函数。紧跟一个空格.
new_len 函数名: 与变量名规范一直。一定要具有可描述性;
() 结构需要,传参使用;
:分割符;
缩进 函数体;
函数的调用
lst1 = [1, 2, 3]
def new_len():
count = 0
for i in lst1:
count += 1
print(count)
new_len() # 函数名() 函数的执行者,调用者;
new_len()
new_len()
函数的执行写多少次,执行多少次;
for i in range(3):
new_len()
函数的返回值 return
一个函数就是封装一个功能,这个功能一般都会有一个最终结果的;比如写一个登陆函数,最后登陆成功与否需要返回一个结果。
函数的返回值用return表示;
return 第一个作用:直接结束函数;
return 第二个作用:给函数的执行者返回具体的值;
函数中没有return或者只写一个return,函数的执行者得到的是None;
函数中return后面是单个值,函数的执行者得到的是这个值(不改变值的类型);
函数中return后面是多个值,函数的执行者得到的是一个元组;
def new_len():
print(111)
print(222)
return
print(333)
print(444)
new_len()
li = [1, 2, 3]
def new_len():
count = 0
for i in li:
count += 1
return count
print(new_len())
def func():
print(111)
# return 100 # 100
# return [1, 2, 3] # [1, 2, 3]
return {'name': 'xiaoming'} # {'name': 'xiaoming'}
ret = func()
print(ret, type(ret))
def func():
print(111)
return 1, '啊', [22, 33] # (1, '啊', [22, 33])
ret = func()
print(ret, type(ret))
def func():
print(111)
# return 1+1+2
return 2 > 1 # True
ret = func()
print(ret, type(ret))
函数的传参
函数的传参:函数的扩展性;
def new_len(a): # 定义函数时:参数:形参。
count = 0
for i in a:
count += 1
return count
l1 = [1, 2, 3]
s1 = 'abcdefghikj'
print(new_len(l1)) # 函数的调用者:参数 实参。
print(new_len(s1)) # 函数的调用者:参数 实参。
print(len(s1)