自学内容网 自学内容网

python()

用自定义函数代替原本的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岁了


原文地址:https://blog.csdn.net/xia_dong/article/details/140706741

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!