Python练习之函数,装饰器,面向对象

  • 1.函数
  • 2 装饰器
  • 3.面向对象

1.函数

编写函数,实现接受一个字符串,分别统计大小写字母,数字,其他字符的个数,并返回结果

#方法一
str=input('请输入:')
l,s,n,t=0,0,0,0
for i in str:if i.islower():l+=1elif i.isupper():s+=1elif i.isnumeric():n+=1elif i in ['@','#','$','%']:t+=1
print(f'此字符串中大写字母数{s},小写字母数为{l},数字个数为{n},其他字符个数为{t}')#方法二
import re
str=input('请输入:')
print(f"此字符串中小写个数为{len(re.findall('[a-z]',str))},大写个数为{len(re.findall('[A-Z]',str))},数字个数为{len(re.findall('[0-9]',str))},"f"其他字符个数为{len(re.findall('[@#¥$%&*]',str))}")#方法三
from functools import reduce
def fn(cont,chick):cont[0]+=chick.islower()cont[1]+=chick.isupper()cont[2]+=chick.isnumeric()if chick in ['@','#','$']:cont[3]+=1return cont
str=input('请输入:')
li=reduce(fn,str,[0,0,0,0])
print(f'此字符串中大写字母数{li[1]},小写字母数为{li[0]},数字个数为{li[2]},其他字符个数为{li[3]}')#方法四
str=input('请输入:')
l,s,n,t=0,0,0,0
for i in str:if 'a'<=i and i<='z':l+=1elif 'A'<=i and i<='Z':s+=1elif '0'<=i and i<='9':n+=1elif i in ['@','#','$']:t+=1
print(f'此字符串中大写字母数{s},小写字母数为{l},数字个数为{n},其他字符个数为{t}')

2 装饰器

装饰器 为函数加上认证的功能 增加一件物品前 先输入用户名密码验证

#装饰函数
def yz(fn):def inner():str=input('请输入用户名:')str1=input('请输入密码:')if str=='www' and str1=='123':print('登录成功!')fn()else:print('用户名或密码错误')return inner
@yz
#被装饰函数
def add():print('添加一条信息成功')
add()
# a=yz(add)
# a()

3.面向对象

烤红薯
1.属性
level 值为整型,表示生熟程度 5
mat 值为字符串,表示生熟信息 半熟
2.方法:
init:设置默认属性
cook:烤红薯方法
3.要求
1.烧烤时间:根据传入的值来决定
2.烧烤状态:[0,2]生的、[3,5]半熟、[6,8]熟了,8以上糊了
3.红薯信息:显示红薯状态和烧烤时间(跟level有关)

class Khs:#定义类def __init__(self):#定义属性self.level=0self.mature='生的'def cook(self,time=0):self.level+=time#判断生生熟if self.level>8:self.mature='烤糊了'elif self.level>=6:self.mature='熟了'elif self.level>=3:self.mature='半熟'elif self.level>=0:self.mature='生的'print('红薯程度:', self.level)print('红薯状态:', self.mature)
#实例化对象
k=Khs()
print('红薯程度:', k.level)
print('红薯状态:', k.mature)
print('开始烤红薯,,,')
k=Khs()
k.cook(5)
class A:def __init__(self,level=0,mat='生的'):self.level=levelself.mat=matdef chus(fn):def inner(*args):print(f'''红薯信息:红薯生熟程度 0红薯状态: 生的开始烧烤了。。。''')fn(*args)return inner@chusdef cook(self):if self.level in [0, 1, 2]:self.mat = '生的'elif self.level in [3, 4, 5]:self.mat = '半熟'elif self.level in [6, 7, 8]:self.mat = '熟了'elif self.level > 8:self.mat = '糊了'print(f'''红薯信息:红薯生熟程度{self.level} 红薯状态: {self.mat}''')
str=int(input('请输入烧烤成程度:'))
a=A(str)
a.cook()

  • 我的生命与灵魂,是死水一样的寂静,直到有一人说,她在我的眼中看见了星空,或许她不知道,我眼中只有夜幕,而她是闪亮的所有。

Python练习之函数,装饰器,面向对象相关推荐

  1. python中的装饰器有哪些-Python中的@函数装饰器到底是什么?

    在解释@函数装饰器之前,先说一下,类中的类方法和静态方法. 在Python中完全支持定义类方法.静态方法.这两种方法很相似,Python它们都使用类来调用(ps:用对象调用也可以). 区别在于:Pyt ...

  2. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  3. python 函数装饰器_python函数装饰器的用法

    函数装饰器: 开闭原则:在面向对象编程领域中,开闭原则规定"软件中的对象(类,模块,函数等等)应该对于扩展是开放的, 但是对于修改是封闭的",这意味着一个实体是允许在不改变它的源代 ...

  4. python类方法调用装饰_Python3 @classmethod 函数装饰器 声明一个类方法

    Python3 @classmethod 函数装饰器 声明一个类方法 @classmethod函数装饰器的主要作用是将一个类的普通方法(需要实例化使用)声明为一个类方法(可以直接使用类名调用).在类的 ...

  5. Python的神奇功能——函数装饰器MetaClass

    Python中的装饰器,会让很多人望而却步.不要被它吓跑,啃下它,其实超有用,也没有想象中难. 所谓的装饰器,其实就是通过装饰器函数,来修改原函数的一些功能,使得原函数不需要修改. Python的装饰 ...

  6. python学习笔记(装饰器、迭代器生成器、内置函数、软件目录开发规范)

    装饰器 定义:本质是函数,(功能:装饰其他函数):就是为其他函数添加附加功能 模拟场景一,在现有的函数中增加某个功能.现有的做法是定义新函数,并且加入函数中.需要修改源代码. def logger() ...

  7. python装饰器实例-Python函数装饰器--实例讲解

    一.装饰器定义: 1.装饰器的本质为函数: 2.装饰器是用来完成被修饰函数的附加功能的 所以:装饰器是用来完成被修饰函数附属功能的函数 装饰器的要求: 1.不能修改被修饰函数的源代码: 2.不能更改被 ...

  8. python装饰器函数-python装饰器1:函数装饰器详解

    先混个眼熟 谁可以作为装饰器(可以将谁编写成装饰器): 函数 方法 实现了__call__的可调用类 装饰器可以去装饰谁(谁可以被装饰): 函数 方法 类 基础:函数装饰器的表现方式 假如你已经定义了 ...

  9. python装饰器函数-Python函数装饰器指南

    Python 具有强大的功能和富有表现力的语法.我最喜欢的装饰之一.在设计模式的上下文中,装饰器动态更改方法或类功能,而不必直接使用子类.当您需要扩展功能,但不想修改原函数时,这是理想的选择.我们可以 ...

  10. python装饰器-Python @函数装饰器及用法(超级详细)

    前面章节中,我们已经讲解了 Python 内置的 3 种函数装饰器,分别是 @staticmethod.@classmethod 和 @property,其中 staticmethod().class ...

最新文章

  1. IDEA一直提示 错误: 找不到或无法加载主类
  2. hdu 5493 Queue(逆序对,线段树)
  3. PolarDB-X 2.0:使用一个透明的分布式数据库是一种什么体验?
  4. Auto packing the repository in background for optimum performance.
  5. 蓝桥杯省内模拟赛解题过程
  6. calendar类计算时间距离_日期时间--JAVA成长之路
  7. php将pdf保存文件到本地,将生成的PDF文件存储在服务器上
  8. 响应函数sys_xxx
  9. vue 一个组件内多个弹窗_使用vue实现各类弹出框组件
  10. MIS系统开发利器,实施、维护人员自定义报表的福音,AgileEAS.NET SOA平台动态报表指南...
  11. ListView 优化
  12. javascript自动分号补齐带来的坑
  13. Reading Note(4)——面向关系型数据库的哈希连接加速器
  14. 计算机硬件技术基础 试题与答案,计算机硬件技术基础网上作业及答案
  15. 2020双十一商家物流迎来大考:看拙燕仓如何破局?
  16. 基恩士CSV点云文件转PCD文件 PYTHON版
  17. gif一键抠图 在线_5个一键抠图高效率工具
  18. 小豆苗服务器维护,小豆苗问题排查方法新版ppt课件
  19. 论文阅读笔记 | 目标检测算法——SAPD算法
  20. Canvas学习:绘制圆和圆弧

热门文章

  1. 【人工智能与机器学习】——Keras编程分别实现人脸微笑和口罩数据集的识别模型训练和测试(卷积神经网络CNN) + 实时分类微笑和口罩识别检测
  2. 维特比算法详解(隐马尔科夫模型)
  3. 大话西游维护完怎么刷服务器,大话西游2免费版 12月17日维护公告 街坊三妖刷新调整...
  4. 零基础能学云计算吗 郑州云计算培训机构哪家好
  5. Unity-IOS证书和描述文件配置
  6. 一些比较值得思考和了解的.NET相关的面试题
  7. 基于SSM的眼镜店耗材与档案管理系统
  8. 乘风破浪会有时,直挂云帆济沧海。
  9. 【R语言】批量合并Excel文件,并增加文件来源列
  10. Photoshop CS2 视频教程-PS涂抹工具(转)