• Python每日一练(牛客数据分析篇新题库)——第29天:数据索引


    1. 修改属性1

    描述: 请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似’NiuNiu‘s salary is 4000, and his age is 22’的语句。
    请根据输入的name与salary为该类创建实例e,并调用printclass方法输出信息,如果没有年龄信息则输出错误信息"Error! No age"。
    根据输入的年龄为实例e直接添加属性age等于输入值,再次调用printclass方法输出信息。(printclass方法中建议使用try…except…结构)

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

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

    实现代码:

    class Employee:
        def __init__(self, name, salary):
            self.name = name
            self.salary = salary
        def printclass(self):
            try:
                print("%s'salary is %s, and his age is %s" % (self.name,self.salary,self.age))
            except:
                print("Error! No age")
    e = Employee(input(),int(input()))
    e.printclass()
    e.age = int(input())
    e.printclass()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    运行结果:

    在这里插入图片描述

    2. 修改属性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有没有属性age,True或者False;
    第二行输出printclass打印信息。

    实现代码:

    class Employee:
        '''雇员类'''
        def __init__(self,name,salary):
            self.name=name
            self.salary=salary
        def printclass(self):
            print('%s\'salary is %s, and his age is %s'%(self.name,self.salary,self.age))
    
    name=input()
    salary=input()
    age=''
    e=Employee(name,salary)
    if hasattr(e,age):
        print(True)
    else:
        print(False)
        setattr(e,'age',int(input()))
        e.printclass()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    运行结果:
    在这里插入图片描述

    3. 重载运算

    描述
    请创建一个Coordinate类表示坐标系,属性有x和y表示横纵坐标,并为其创建初始化方法__init__。
    请重载方法__str__为输出坐标’(x, y)'。
    请重载方法__add__,更改Coordinate类的相加运算为横坐标与横坐标相加,纵坐标与纵坐标相加,返回结果也是Coordinate类。
    现在输入两组横纵坐标x和y,请将其初始化为两个Coordinate类的实例c1和c2,并将坐标相加后输出结果。

    输入描述
    第一行输入两个整数x1与y1,以空格间隔。
    第二行输入两个整数x2与y2,以空格间隔。

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

    实现代码:

    class Coordinate:
        def __init__(self,x,y):
            self.x=x
            self.y=y
        def __str__(self):
            print(f"({self.x}, {self.y})")
        def __add__(self,Coordinate1):
            return Coordinate(self.x+Coordinate1.x,self.y+Coordinate1.y)
    x1,y1=list(map(int,input().split()))
    c1=Coordinate(x1,y1)
    x2,y2=list(map(int,input().split()))
    c2=Coordinate(x2,y2)
    c=c1.__add__(c2)
    c.__str__()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    运行结果:

    在这里插入图片描述


    《100天精通Python》专栏推荐白嫖80g Python全栈视频

    《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

    • 优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)!
    • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    Quarto 入门教程 (1):简单介绍和资料汇总
    Redis高可用方案
    图搜算算法分类
    2023年高教社杯全国大学生数学建模竞赛赛题
    【数据结构--二叉树】平衡二叉树
    节能与环保杂志节能与环保杂志社节能与环保编辑部2022年第6期目录
    Unity 3D Input System的使用
    【Java 进阶篇】JQuery 案例:全选全不选,为选择添彩
    使用JMeter的JSON提取器:通过递归下降查找,从接口响应中提取特定字段
    Vue3速成
  • 原文地址:https://blog.csdn.net/yuan2019035055/article/details/126650578