当前位置: 首页 > news >正文

【Python刷题篇】——Python入门 011面向对象(二)

在这里插入图片描述

🤵‍♂️ 个人主页: @北极的三哈 个人主页

👨‍💻 作者简介:Python领域新星创作者。

📒 系列专栏:《牛客题库-Python篇》

🌐推荐《牛客网》——找工作神器|笔试题库|面试经验|实习经验内推求职就业一站解决

👉 点击链接进行注册学习

在这里插入图片描述


牛客题库《在线编程-Python篇》

  python的学习还是得基础知识+自己动手同步进行。如果是python新手,需要找一个可以在线练习得网站,我建议你去牛客网多练习。

在这里插入图片描述

Python入门:011 面向对象 NP94-NP100

在这里插入图片描述


面向对象(一)NP98-NP100


NP98 修改属性1

描述
请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似'NiuNiu‘s salary is 4000, and his age is 22'的语句。

请根据输入的namesalary为该类创建实例e,并调用printclass方法输出信息,如果没有年龄信息则输出错误信息"Error! No age"

根据输入的年龄为实例e直接添加属性age等于输入值,再次调用printclass方法输出信息。(printclass方法中建议使用try...except...结构)

输入描述:
三行分别输入姓名name、工资salary、年龄age,其中第一个为字符串,后两个为整型数字。

输出描述:
根据描述输出错误信息或是打印信息。

示例1
输入:NiuNiu
   8000
   22
输出:Error! No age
   NiuNiu'salary is 8000, and his age is 22

代码:

class employee:
    def __init__(self,name,salary,age=-1):
        self.name=name
        self.salary=salary
        self.age=age
    def 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()

自测运行:
在这里插入图片描述

保存提交:
在这里插入图片描述


NP99 修改属性2

描述
请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似'NiuNiu‘s salary is 4000, and his age is 22'的语句。

请根据输入的信息为Employee类创建一个实例e,调用hasattr方法检验实例有没有属性age,如果存在属性age直接调用printclass输出,否则使用setattr函数为其添加属性age,并设置值为输入后,再调用printclass输出。

输入描述:
三行分别依次输入姓名name、工资salary、年龄age,其中第一行为字符串,后两行为整型数字。

输出描述:
第一行输出e有没有属性ageTrue或者False
第二行输出printclass打印信息。

示例1
输入:NiuNiu
   4000
   23
输出:False
   NiuNiu'salary is 4000, and his age is 23

代码:

class Employee():
    def __init__(self, name, salary) -> None:
        self.name = name
        self.salary = salary
    def 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()

自测运行:
在这里插入图片描述

保存提交:
在这里插入图片描述


NP100 重载运算

描述
请创建一个Coordinate类表示坐标系,属性有x和y表示横纵坐标,并为其创建初始化方法__init__

请重载方法__str__为输出坐标'(x, y)'

请重载方法__add__,更改Coordinate类的相加运算为横坐标与横坐标相加,纵坐标与纵坐标相加,返回结果也是Coordinate类。

现在输入两组横纵坐标x和y,请将其初始化为两个Coordinate类的实例c1c2,并将坐标相加后输出结果。

输入描述:
第一行输入两个整数x1y1,以空格间隔。
第二行输入两个整数x2y2,以空格间隔。

输出描述:
输出相加后的坐标。

示例1
输入:1 2
   3 4
输出:(4, 6)

代码:

class Coordinate():
    def __init__(self, x, y):
        self.x = x
        self.y = y
         
    def __str__(self):
        print((self.x, self.y))
         
    def __add__(self):
        self.x = x1 + x2
        self.y = y1 + y2
         
     
x1, 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)

自测运行:
在这里插入图片描述

保存提交:
在这里插入图片描述


推 荐:牛客题霸-经典高频面试题库

🌐 找工作神器-|笔试题库|面试经验|大厂面试题 👉 点击链接进行注册学习
在这里插入图片描述

相关文章:

  • 使用Quartz或CronUtil实现动态的任务调度以及任务的管理
  • 死磕它3年,入职京东,要个25K不过分吧?
  • 乐高CPC认证办理儿童玩具出口美国亚马逊CPSIC认证
  • .NET Core Web APi类库如何内嵌运行?
  • Kafka3.2.3基于Linux的集群安装(待续)
  • 数据湖技术之 Hudi 框架概述
  • 前端利器 —— 提升《500倍开发效率》 传一张设计稿,点击一建生成项目 好牛
  • MySQL数据库基础:数据类型详解-数值类型
  • 超好用的内网穿透工具【永久免费不限制流量】
  • Doris0.15平滑升级至1.12
  • CentOS系统安装Docker Engine
  • 【Node.js 入门篇】连接 MySQL
  • 一文带你读懂Vue生命周期
  • Java顺序表的实现
  • 金仓数据库KingbaseES数据库参考手册(服务器配置参数18. 开发者选项)
  • 收藏网友的 源程序下载网
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Docker容器管理
  • ES6--对象的扩展
  • java2019面试题北京
  • JDK 6和JDK 7中的substring()方法
  • JS+CSS实现数字滚动
  • Meteor的表单提交:Form
  • Mysql数据库的条件查询语句
  • python 装饰器(一)
  • web标准化(下)
  • 安卓应用性能调试和优化经验分享
  • 包装类对象
  • 那些年我们用过的显示性能指标
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 用element的upload组件实现多图片上传和压缩
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (2)nginx 安装、启停
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (十六)Flask之蓝图
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET 8.0 中有哪些新的变化?
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net framework4与其client profile版本的区别
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET Remoting学习笔记(三)信道
  • .NET 中创建支持集合初始化器的类型
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET命令行(CLI)常用命令
  • .NET上SQLite的连接
  • .net生成的类,跨工程调用显示注释
  • .Net小白的大学四年,内含面经
  • [ linux ] linux 命令英文全称及解释
  • [20160807][系统设计的三次迭代]
  • [AIGC] SQL中的数据添加和操作:数据类型介绍