首页 > 编程语言 > 详细

python应用----函数

时间:2020-05-17 23:04:52      阅读:55      评论:0      收藏:0      [点我收藏+]

一、写函数计算传入字符串中【数字】、【字母】、【空格】、【其他】的个数,并返回结果。

def count(s):
    dic = {数字:0,字母:0,空格:0,其他:0}
    for i in s:
        if i.isdigit():
            dic[数字] +=1
        elif i.isalpha():
            dic[字母] += 1
        elif i.isspace():
            dic[空格] += 1
        else:
            dic[其他] += 1
    return dic
l = 12  12 wdssd 33 *****  $$$
print(count(l))#{‘数字‘: 6, ‘字母‘: 5, ‘空格‘: 7, ‘其他‘: 8}

 二、写函数,用户传入修改的文件名,与要修改的内容,

执行函数,完成整个文件的批量修改操作

#写函数,用户传入修改的文件名,与要修改的内容,
#执行函数,完成整个文件的批量修改操作
def func(filename,old,new):
    with open(filename,r,encoding=utf-8)as f,open(%s.bak%filename,w,encoding=utf-8)as f2:
         for line in f:
             line = line.replace(old,new)
             f2.write(line)
    import os
    os.remove(filename)#删除文件
    os.replace(%s.bak%filename,filename)#重命名文件
func(雪花,小白,xiaobai)

 三、装饰器

#装饰器作用:若不想修改函数的调用方式 但是还想再原来函数前后添加功能
#timer就是一个装饰器函数,只是对一个函数有一些装饰作用
import time
def timer(f):
    def inner(*args,**kwargs):  #*args、**kwargs:动态参数
        start = time.time()
        time.sleep(0.01)
        ret = f(*args,**kwargs)
        end = time.time()
        print(end - start)
        return ret
    return inner
@timer        #语法糖   @装饰器函数名
def func(a,b):    #被装饰函数
    print(5.16,a,b)
    return 2020
@timer
def func1(a):    #被装饰函数
    print(18.03,a)
    return 2020
# func = timer(func)
ret1 = func(星期六,[5,16])
ret2 = func1(00)
print(ret1,ret2)
技术分享图片

 

 

 四、人狗大战

def Person(name,blood,aggr,sex):#建模
    person = {
      "name":name,
      blood:blood,#血量
      aggr:aggr,#攻击力
      sex:sex,
    }
    def attack(dog):
        dog[blood] -= person[aggr]
        print({}攻击了{},{}掉了{}血\n{}还剩{}血量.format(person[name],dog[name],dog[name],person[aggr],dog[name],dog[blood]))
    person[attack] = attack
    return person
def Dog(name,blood,aggr,kind):
    dog = {
      "name" : name,
      blood:blood,
      aggr:aggr,
      kind:kind#品种
    }
    def bite(person):
        person["blood"] -= dog[aggr]
        print({}咬了{},{}掉了{}血\n{}还剩{}滴血.format(dog[name],person[name],person[name],dog[aggr],person[name],person[blood]))
    dog[bite] = bite
    return dog
people_1 = Person(大白,1000,50,woman)
people_2 = Person(哪吒,500,100,man)
dog_1 = Dog(二哈,200,2,2ha)
dog_2 = Dog(小白,400,20,拉布拉多)
print(people_1)
print(dog_1)
people_1[attack](dog_2)
dog_1[bite](people_2)
#{‘name‘: ‘大白‘, ‘blood‘: 1000, ‘aggr‘: 50, ‘sex‘: ‘woman‘, ‘attack‘: <function Person.<locals>.attack at 0x0000022A514D7DC0>}
#{‘name‘: ‘二哈‘, ‘blood‘: 200, ‘aggr‘: 2, ‘kind‘: ‘2ha‘, ‘bite‘: <function Dog.<locals>.bite at 0x0000022A514D7E50>}
#大白攻击了小白,小白掉了50血
#小白还剩350血量
#二哈咬了哪吒,哪吒掉了2血
#哪吒还剩498滴血

 

python应用----函数

原文:https://www.cnblogs.com/2584808136-qq-com/p/12902130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!