用自定义函数代替原本的max函数的功能
import random
s=pow(2,5)
print(s)#s=32
#pow代表2的五次方
def get_max(lst):
x=lst[0]#x的存储的是元素的最大值
#遍历
for i in range(1,len(lst)):
if lst[i]>x:
x=lst[i]
return x
#调用
lst=[ random.randint(1,100) for item in range(10)]
print(lst)
#[43, 22, 92, 73, 28, 54, 17, 98, 74, 64]
max=get_max(lst)
print(max)#98
提取输入的数字,对数字列表化,然后进行累加
import random
def get_digit(x):
s=0#存储累加
lst=[]#储存提取出来的数字
for item in x:
if item.isdigit():#如果是数字
lst.append(int(item))
#求和
s=sum(lst)
return lst,s
#准备函数的调用
s=input('请输入一个字符串:')
#调用
lst,x=get_digit(s)
print('提取出来的数字列表为:',lst)
print('累加和为:',x)
# 请输入一个字符串:world112233
# 提取出来的数字列表为: [1, 1, 2, 2, 3, 3]
# 累加和为: 12
将字母的大小写相互转化
def lower_upper(x):
lst=[]
for item in x:
if 'A'<=item<='Z':
lst.append(chr(ord(item)+32))#ord()将字母转成Unicode码整数,加上32,chr()整数码转成字符串
elif 'a'<=item<='z':
lst.append(chr(ord(item)-32))
else:
lst.append(item)
return''.join(lst)
#准备调用
s=input('请输入一个字符串:')
new_s=lower_upper(s)
print(new_s)
# 请输入一个字符串:HELLO123world123
# hello123WORLD123
实现操作符in的判断功能
def get_find(s,lst):
for item in lst:
if s==item:
return True
return False
lst=['hello','world','python']
s=input('请输入您要判断的字符串:')
result=get_find(s,lst)
print('存在'if result else '不存在')#if……else的简写,三元运算符 if result==True if result 利用到对象的布尔值
# 请输入您要判断的字符串:world
# 存在
# 请输入您要判断的字符串:xx
# 不存在
class Student:
#类属性:定义在类中,方法外的变量
school='北京xxx教育'
print(type(school))#定义在类里面所以属性不变
#类属性初始化方法
def __init__(self,xm,age):#xm,age是方法的参数,是局部变量,xm,age的作用域整个__init__方法
#即xm,age只能在类里面使用,要想在其他地方使用需要定义类的实例属性
self.name=xm #左例是实例属性,xm是局部变量,将局部变量的值xm赋值给实例属性self.name
self.age=age #实例的名称和局部的可以相同
#定义在类中的函数,称为方法,自带一个参数self
def show(self):
print(f'我叫:{self.name}.今年:{self.age}岁了')
#静态方法
@staticmethod
def sm():
# print(self.name )
# self.show()
#以上两处均报错了,
print('原因是因为这是一个静态方法,不能调用实例属性,也不能调用实例方法')
@classmethod
def cm(cls):#cls-->class的简写
#print(self.name)
# self.show()
print('这是一个类方法,不能调用实例属性,也不能调用实例方法')
#创建类的对象
stu=Student('xy','18')#为什么传了两个参数,因为__init__方法中,有两个形参,self.是自带的参数,无需手动传入
#实例属性,使用对象名进行打点调用的
print(stu.name,stu.age)
#类属性,直接使用类名,打点调用
print(Student.school)
#实例方法,使用对象名进行打点调用
stu.show()
#类方法,@classmethod进行修饰的方法,直接用类名打点调用
Student.cm()
# 静态方法 @staticmethod进行修饰的方法,直接使用类名打点调用
Student.sm()
class Student:
#类属性:定义在类中,方法外的变量
school='北京xxx教育'
print(type(school))#定义在类里面所以属性不变
#类属性初始化方法
def __init__(self,xm,age):#xm,age是方法的参数,是局部变量,xm,age的作用域整个__init__方法
#即xm,age只能在类里面使用,要想在其他地方使用需要定义类的实例属性
self.name=xm #左例是实例属性,xm是局部变量,将局部变量的值xm赋值给实例属性self.name
self.age=age #实例的名称和局部的可以相同
#定义在类中的函数,称为方法,自带一个参数self
def show(self):
print(f'我叫:{self.name} 今年:{self.age}岁了')
s=Student('xy',18)
s2=Student('hh',20)
s3=Student('yy',21)
s4=Student('xx',23)
#等号的右侧都有Student
print(type(s))
print(type(s2))
print(type(s3))
print(type(s4))
Student.school='python education'
#将学生对象存储到列表中
lst=[s,s2,s3,s4] #列表中的元素是Student类型的对象
for item in lst: #item是列表中的元素,是Student类型的对象
item.show()#对象名打点调用实例方法
# <class 'str'>
# <class '__main__.Student'>
# <class '__main__.Student'>
# <class '__main__.Student'>
# <class '__main__.Student'>
# 我叫:xy 今年:18岁了
# 我叫:hh 今年:20岁了
# 我叫:yy 今年:21岁了
# 我叫:xx 今年:23岁了