蓝桥 python笔记7——类和对象、属性和方法、模块、常用内置函数、自定义排序、bisect模块

本文介绍了Python中的类和对象概念,包括属性和方法的定义,以及如何创建和使用类实例。还涵盖了模块的使用,常用内置函数如最大公约数(gcd)、最小公倍数(lcm)和质数判断,自定义排序方法和二分查找在bisect模块中的应用。
摘要由CSDN通过智能技术生成

目录

类和对象

属性和方法

模块

常用内置函数

自定义排序

二分查找


类和对象

class student:
    # 属性
    x='hello'

    # 初始化方法,初始化一个对象
    def __init__(self,name,class_idx):     #self参数一定要有
        # 属性
        self.name=name
        self.class_idx=class_idx

A=student("小明","一班")
print(A.name,A.class_idx)
# 小明 一班

class student:
    # 属性
    x='hello'

    # 初始化方法,初始化一个对象
    def __init__(self,name,class_idx):     #self参数一定要有
        # 属性
        self.name=name
        self.class_idx=class_idx

    def output(self):
        print("打印当前对象的内部信息")
        print(self)
        print(self.name,self.class_idx)

A=student("小明","一班")
print("外部打印信息")
print(A)
print(A.name,A.class_idx)
print('-'*10)
A.output()
# 外部打印信息
# <__main__.student object at 0x000001A4AE7A7ED0>
# 小明 一班
# ----------
# 打印当前对象的内部信息
# <__main__.student object at 0x000001A4AE7A7ED0>
# 小明 一班

属性和方法

class student:
    # 属性
    sex_list=['boy','girl']

    # 类方法
    @classmethod
    def get_sex_list(cls):  #cls和self异曲同工
        #cls对应的是整个class,self对象的是某个对象
        return cls.sex_list

    def __init__(self,name,sex,class_idx):
        self.name=name
        self.sex=sex
        self.class_idx=class_idx

print(student.get_sex_list())   #通过类方法获取类属性sex_list
# ['boy', 'girl']

魔术方法:pyzh.readthedocs.io


模块


常用内置函数

# 输入参数:a,b
# 返回值:gcd
# 最大公约数:gcd(a,b)=gcd(b,a%b)
def gcd(a, b):
    r=a%b
    while r !=0:
        a=b
        b=r
        r=a%b
    return b

# 最小公倍数:
# 性质:gcd(a,b)*lcm(a,b) = a*b
def lcm(a, b):
    return a*b//gcd(a, b)

# 判断是否为质数
# 只需要判断2~sqrt(x)
def is_prime(x):
    if x<=1:
        return False
    m=int(x**0.5)
    for i in range(2,m+1):
        if x%i==0:
            return False
    return True

a, b = list(map(int, input().split()))
print("gcd({},{})={}".format(a,b,gcd(a,b)))
print("lcm({},{})={}".format(a,b,lcm(a,b)))
c=int(input())
print(is_prime(c))

自定义排序

 

按照绝对值大小排序:

按照二元组的两数之和大小来排序:

list的sort:

list.sort的自定义:


二分查找

bisect模块:维护一个已排序列表,支持二分查找、二分插入

from bisect import *
a=[1,1,2,2,2,4,7]
x=3
print('x={},a中查找的第一个位置是:{}'.format(x,bisect_left(a,x)))
x=2
print('x={},a中查找的第一个位置是:{}'.format(x,bisect_left(a,x)))
x=2
print('x={},a中查找的最后一个位置是:{}'.format(x,bisect_right(a,x)))
x=10
print('x={},a中查找的最后一个位置是:{}'.format(x,bisect_right(a,x)))
# x=3,a中查找的第一个位置是:5
# x=2,a中查找的第一个位置是:2
# x=2,a中查找的最后一个位置是:5
# x=10,a中查找的最后一个位置是:7

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值