🤵♂️ 个人主页: @北极的三哈 个人主页
👨💻 作者简介:Python
领域优质创作者。
📒 系列专栏:《牛客题库-Python篇》
🌐推荐《牛客网》——找工作神器
|笔试题库
|面试经验
|实习经验内推
,求职就业一站解决
👉 点击链接进行注册学习
Python面向对象学习链接
封装
:将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。这样,无需关心方法内部的具体实现细节,从而隔离了复杂度。
继承
:子类可以继承父类的属性和方法,提高代码的复用性。
多态
:多态就是具有多种形态,即便不知道一个变量所引用的对象是什么类型,仍然可以使用这个变量调用方法。
特殊方法 | 描述 |
---|---|
__len__() | 通过重写 __len__() 方法,让内置函数len() 的参数可以是自定义类型 |
__add__() | 通过重写__add__() 方法,可以让自定义对象具有+ 的功能 |
__new__() | 用于创建对象 |
__init__() | 对创建的对象进行初始化 |
浅拷贝
Python
拷贝一般都是浅拷贝
,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象。
深拷贝
使用
copy
模块的deepcopy
函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同。
在线编程跳转链接
def cal(a, b):return a - b
x = int(input())
y = int(input())
print(cal(x, y))
print(cal(y, x))
在线编程跳转链接
def f(n):if n==1:return 2if n==2:return 3else:return f(n-1)+f(n-2)
n=int(input())
print(f(n))
在线编程跳转链接
import math as mtdef vol(n):return 4*mt.pi*(n**2)list1=[1, 2, 4, 9, 10, 13]
for n in list1:print(round(vol(n),2))
在线编程跳转链接
class Student:def __init__(self, name, stu_num, score, grade):self.name = nameself.stu_num = stu_numself.score = scoreself.grade = grade#__str__方法用于返回对象的描述信息,如果不使用__str__方法,直接print,或者return,返回的是对象的内存地址。def __str__(self): return ("%s's student number is %s, and his grade is %d. He submitted %s assignments, each with a grade of %s"% (self.name, self.stu_num, int(self.score), len(self.grade.split()), self.grade))name1 = input()
stu_num1 = input()
score1 = input()
grade1 = input()
stu = Student(name1, stu_num1, score1, grade1)
print(stu)
在线编程跳转链接
class employee:def __init__(self,name,salary,age=-1):self.name=nameself.salary=salaryself.age=agedef printclass(self):if self.age==-1:print("Error! No age")else:print("{}'salary is {}, and his age is {}".format(self.name,self.salary,self.age))
a=input()
b=int(input())
c=int(input())
e=employee(a,b)
e.printclass()
e.age=c
e.printclass()
在线编程跳转链接
class Employee():def __init__(self, name, salary) -> None:self.name = nameself.salary = salarydef printclass(self):print(f"{self.name}'salary is {self.salary}, and his age is {self.age}")name = input()
salary = int(input())
age = int(input())e = Employee(name, salary)
if hasattr(e,'age'):e.printclass()
else:print(False)setattr(e,"age",age)e.printclass()
在线编程跳转链接
class Coordinate():def __init__(self, x, y):self.x = xself.y = ydef __str__(self):print((self.x, self.y))def __add__(self):self.x = x1 + x2self.y = y1 + y2x1, y1 = map(int, input().split()) # 1.输入第一行两个数字
x2, y2 = map(int, input().split()) # 1.输入第二行两个数字c1 = Coordinate(x1, y1) # 2. 调用类
c1.__add__() # 3. 调用__add__()函数,实现两组数据分别对应相加
c1.__str__() # 4. 调用__str__()函数,打印(相加之后的x, 相加之后的y)
示例:
1、验证账号是否合法(字母开头,允许5-16
字节,允许字母数字下划线)。
2、验证密码是否合法(以字母开头,长度在6~18
之间,只能包含字母、数字和下划线)
3、匹配是否全是汉字。
4、验证日期格式(2020-09-10)
5、验证身份证号码。
"""
1、验证账号是否合法(字母开头,允许5-16字节,允许字母数字下划线)。
2、验证密码是否合法(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)
3、匹配是否全是汉字:
4、验证日期格式(2020-09-10)
5、验证身份证号码。
"""
import re# 1.验证账号是否合法(字母开头,允许5-16字节,允许字母数字下划线)。
print(re.match(r'^[a-zA-z]\w{4,15}$', 'a3443wre5678rfgh').group())# 2、验证密码是否合法(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)
print(re.match(r'^[a-zA-Z]\w{5,17}$', 'd697g798bv9d44444e').group())# 3.匹配是否全是汉字:
print(re.match('^[\u4e00-\u9fa5]{0,}$', '哈哈').group())# 4.验证日期格式(2020-09-10)
# print(re.match(r'^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$', '2020-09-10').group())# 5.验证身份证号码。
print(re.match(r'^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$', '533326200006013333').group())
在线编程跳转链接
import re
http = input()
result = re.match('https://www',http,re.I)
print(result.span())
在线编程跳转链接
import re
#导入模块p=r'[-A-Za-z]+'
#第一个‘-’表示字符‘-’,A-Za-z表示匹配大小字母
#‘+’号表示连续匹配text=input()
#输入测试字符串print(re.sub(p,'',text))
#利用sub()函数过滤再输出
在线编程跳转链接
import re
s = input()
r = re.match('[0-9-]+',s)
print(r.group())
推 荐:牛客题霸-经典高频面试题库
🌐
找工作神器-|笔试题库|面试经验|大厂面试题
👉 点击链接进行注册学习