1.函数
编写函数,实现接受一个字符串,分别统计大小写字母,数字,其他字符的个数,并返回结果
#方法一
str=input('请输入:')
l,s,n,t=0,0,0,0
for i in str:
if i.islower():
l+=1
elif i.isupper():
s+=1
elif i.isnumeric():
n+=1
elif 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]+=1
return 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+=1
elif 'A'<=i and i<='Z':
s+=1
elif '0'<=i and i<='9':
n+=1
elif 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=0
self.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=level
self.mat=mat
def chus(fn):
def inner(*args):
print(f'''红薯信息:
红薯生熟程度 0
红薯状态: 生的
开始烧烤了。。。''')
fn(*args)
return inner
@chus
def 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()
- 我的生命与灵魂,是死水一样的寂静,直到有一人说,她在我的眼中看见了星空,或许她不知道,我眼中只有夜幕,而她是闪亮的所有。