练习21(函数的初识,返回值,参数)

练习21

s = 'fjkdsfljsdklfjskdfdsfsdafsd'
count = 0
for i in s:
    count += 1
print(count)
#
l = [1, 2, 3, 4]
count = 0
for i in l:
    count += 1
print(count)
#  def 关键字 函数名:
def my_len():
    #函数体
    l = [1, 2, 3, 4]
    count = 0
    for i in l:
        count += 1
    print(count)
#
my_len(s) # 执行函数
# 函数的优点:
# 减少代码的重复率。
# 增强代码的阅读性
#
# 函数到底是什么? 函数最主要的目的:封装一个功能。
#
#
s = 'fjkdsfljsdklfjskdfdsfsdafsd'
print(len(s))
def my_len():
    # 函数体
    l = [1, 2, 3, 4]
    count = 0
    for i in l:
        count += 1
    print(count)
print(my_len())
#
# 函数的返回值 return
# 1、函数中如果遇到return,则直接结束函数。
# 2、给函数的执行者返回值。
    return #                None
    return # 单个值         原封不懂的返回
    return # 多个值         一个元组,所有的返回值作为元组的每一个元素
def func1():
    print(111)
    print(222)
    return
    print(333)
print(func1()) # 整体是函数的执行者。
#
#
def func1():
    a = 1
    b = 2
    c = a + b
    d = 'alex'
    e = [1,2,3]
    return c,d,e
ret = func1()
print(ret,type(ret)) # 整体是函数的执行者。
# 函数中尽量不要出现print
#
def my_len():
    # 函数体
    s = 'fjkdsfljsdklfjskdfdsfsdafsd'
    count = 0
    for i in s:
        count += 1
    return count
print(my_len())
#
# 函数的传参:
    # 实参
        # 位置参数
        # 关键字参数
        # 混合参数
    # 形参
#
l1 = [1,2,3]
s = 'fjkdsfljsdklfjskdfdsfsdafsd'
def my_len(argv):   # 形式参数,形参
    3函数体
    count = 0
    for i in argv:
        count += 1
    return count
print(my_len(s)) # 函数的执行者(实参) 实际的参数
print(my_len(l1)) # 函数的执行者(实参) 实际的参数
#
# 实参
    # 位置参数 按顺序一一对应
#
def func1(x,y):
    print(x,y)
#
func1(1,2)
# 2个函数:1个函数 求和;1个函数 将大的数给我返回
def my_sum(a,b):
    return a+b
print(my_sum(5,7))
#
def big_small(x,y):
    if a > b:
        return a
    else:
        return b
    ret = x if x > y else y
    return x if x > y else y
print(big_small(51,7))
#
# 三元运算:只针对于简单的if else 这样的结构,才可以使用
#
# 关键字传参 可以不按照顺序,但是必须一一对应
#
def func1(x,y):
    return x + y
#
func1(y=100,x=99)
#
def func1(x,y):
    return x + y
#
func1(y=100,x=99)
#
# 混合传参:关键字参数一定要在位置参数后面
#
def func1(a,b,n,x,y):
    return x+y
#
name = 'alex'
print(func1(100,200,name,y=100,x=99))

def namelist(n1,s1='男'):
    with open('namelist',encoding='utf-8',mode='a') as f1:
        f1.write('{}|{}\n'.format(n1,s1))
#
while 1:
    name,sex = input('请输入姓名,性别:以,隔开').strip().replace(',',',').split(',')
    if name.upper() == 'Q':break
    if sex.strip():
        namelist(name,sex)
    else:
        namelist(name)

# 默认参数的陷阱
# 默认参数若是可变的数据类型,他始终使用的是一个
def func1(x,l1=[]):
    l1.append(x)
    return l1

ret = func1(1)
print(ret,id(ret))
ret1 = func1(100)
print(ret1,id(ret1))
print(ret,id(ret))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值