函数学习笔记1

函数的好处:复用,减少重复代码的编写。
小练习:
写一个除法的函数,且需要处理除数不能为0

#encoding=utf-8

def div(a,b):
    if not isinstance(a,(int,float)):
        return None
    if not isinstance(b,(int,float)):
        return None
    if b == 0:
        return None
    return a/b

print(div(100,10))
print(div(20,0))
print(div("a",10))
print(div(100,"b"))   

执行结果:
在这里插入图片描述
I am a 19 years old boy!666!
1、写一个函数,统计一下一句话中数字的个数。

#encoding=utf-8
s = 'I am a 19 years old boy!666!'
def count_digits_in_a_sentence(s):
    if not isinstance(s,str):
        print("the parameter is not a unicode string!")
        return 0
    result = 0
    for i in s:
        if i in "0123456789":
            result+=1
    return result
print(count_digits_in_a_sentence(s))

执行结果:
在这里插入图片描述
2、写一个函数,统计一下一句话中字母的个数。

#encoding=utf-8
s = 'I am a 19 years old boy!666!'
def count_letters_in_a_sentence(s):
    if not isinstance(s,str):
        print("the parameter is not a unicode string!")
        return 0
    result = 0
    for i in s:
        if (ord(i)>=65 and ord(i)<=91) or\
           (ord(i)>=97 and ord(i)<=122):
            result+=1
    return result
print(count_letters_in_a_sentence(s))

执行结果:
在这里插入图片描述

3、写一个函数,统计一下一句话中字母和数字的个数。
print(count_digits_in_a_sentence(s)+count_letters_in_a_sentence(s))
4、写一个函数,统计一下一句话中非字母和非数字的个数。

def count_non_alphabetnum_in_a_sentence(s):
    count = len(s)
    return count-(count_letters_in_a_sentence(s)+count_digits_in_a_sentence(s))
print(count_non_alphabetnum_in_a_sentence(s))

执行结果:
在这里插入图片描述
函数传入的参数为不可变的,对外部的变量就没影响。按值传----传入的不是变量对应的内存地址。
函数传入的参数为可变的,对外部的变量就有影响。按引用传----传入的是变量对应的内存地址。
在这里插入图片描述
练习:
写一个函数,使用可变参数,计算函数所有参数之和。

def f(a,b,*arg):
    result = 0
    result = a+b
    for i in arg:
        result+=i
    return result

执行结果:
在这里插入图片描述

def f(a,b,**kw):
    print(type(kw))
    for k,v in kw.items():
        print(k,v)

print(f(1,2,c=3,d=4,e=5))

执行结果:
在这里插入图片描述
*arg:表示把可变的多个非命名参数,转换成了一个元组
kw:表示把可变的多个命名参数,转换为了一个字典
练习:
1、请使用
kw的方式,把可变的所有参数算一个乘积

def mul(a,b,**kw):
    result = 1
    result = a*b
    for k,v in kw.items():
        result*=v
    return result

print(mul(1,2,c=3,d=4,e=5))

在这里插入图片描述
2、同时使用*arg和**kw,算一下字母的长度之和,注意所有参数均使用字符串,字符串都是字母。

def count_letter_length(a,b,*arg,**kw):
    result = ""
    result = a+b
    for i in arg:
        result += i
    for k,v in kw.items():
        result += v
    return len(result)

print(count_letter_length("a","b","c","d","e",f="g",h="p",n="m"))

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值