从零开始学ai之python面向对象篇

大家好!作为刚学 Python 满一周的小白,今天终于鼓起勇气挑战了「面向对象编程」的入门题 —— 定义一个明星类并实现基本功能。虽然中间踩了不少坑,但最终写出了能跑通的代码!这篇博客会用最通俗的语言拆解思路,适合和我一样的零基础小伙伴,快来看看吧~

一、题目要求:用类实现明星信息管理

题目分为三个部分,核心是学会「类」的定义和对象操作:

  1. 定义Star
    • 包含姓名、电影两个属性
    • playing()方法打印出演信息
    • 打印对象时显示自定义文案
    • 删除对象时提示 “不再喜欢”
  2. 循环输入 5 个明星对象:用键盘输入姓名和电影名
  3. 调用方法并打印对象:对每个对象调用playing()并打印

    二、代码实现:从类定义到完整功能(附逐行解析)

    先看最终代码,再拆解每个部分的作用:

    # 1. 循环输入5个明星对象
    star_list = []  # 用列表存储所有对象(别用list作变量名!会覆盖Python内置类型)
    for i in range(5):
        name = input(f'请输入第{i+1}位明星姓名:')
        movie = input(f'请输入{name}的代表电影:')
        star = Star(name, movie)  # 创建Star类的实例(对象)
        star_list.append(star)    # 把对象添加到列表
    
    
    # 2. 调用方法并打印对象
    print('\n--- 明星信息展示 ---')
    for star in star_list:
        star.playing()    # 调用对象的playing方法
        print(star)       # 直接打印对象会触发__str__方法

三、新手必懂:类和对象的核心知识点拆解

1. 什么是「类」?怎么定义?

类就像一个 “模板”,可以批量创建相似的对象。

  • __init__方法:相当于 “模板初始化器”,创建对象时必须传入姓名和电影两个参数
  • 属性self.nameself.movie是每个对象独有的数据(比如不同明星有不同姓名)
  • 方法playing()是对象能执行的动作(比如打印出演信息)

2. 神奇的 “特殊方法”:让对象更智能

  • __str__:当你用print(对象)时,自动调用这个方法返回定制化文案(再也不是默认的内存地址啦!)
  • __del__:当对象被删除(比如程序结束时),会触发这个方法打印提示(理解 “对象生命周期” 的入门)

3. 输入与存储:如何批量创建对象?

  • for循环重复 5 次输入过程,每次创建一个Star对象
  • 把对象存入列表star_list,方便后续统一操作(列表是 Python 中存储多个对象的常用容器)

四、我踩过的 3 个坑(新手必看避坑指南!)

  1. 输入次数错误
    一开始把循环写成range(3),只输入了 3 个对象(题目要求 5 个!)。记住:题目中的 “五个” 一定要严格对应循环次数!

  2. 变量名冲突
    list = []导致后续报错,因为list是 Python 内置的列表类型名。变量名不能和 Python 关键字 / 内置类型重名,建议用star_list这类有意义的名字。

  3. 语法细节失误
    playing方法里的 “出演了” 写成 “演出了”,虽然程序能跑,但不符合题目要求。一定要仔细对照题目描述!

五、学习感悟:从过程到对象,编程思维的小飞跃

写这个程序时,我突然理解了 “面向对象编程” 的核心 ——把数据(属性)和操作(方法)封装在一起。比如每个Star对象都有自己的姓名和电影,还能自己打印信息,就像一个个 “会自己行动” 的小实体。

作为学了一周的新手,第一次写出有完整逻辑的类,成就感爆棚!虽然代码还很基础,但终于明白:编程就是把现实中的问题拆解成代码能理解的 “类” 和 “对象”。接下来想尝试用类做更复杂的小项目,比如学生管理系统、图书管理系统~

六、代码运行效果演示(附截图参考)

假设输入以下内容:

请输入第1位明星姓名:周迅  
请输入周迅的代表电影:画皮  
请输入第2位明星姓名:胡歌  
请输入胡歌的代表电影:琅琊榜  
...(输入5次后)  

输出结果会是:

--- 明星信息展示 ---  
周迅出演了画皮,非常好看  
周迅是我的偶像,我非常喜欢他的电影画皮  
胡歌出演了琅琊榜,非常好看  
胡歌是我的偶像,我非常喜欢他的电影琅琊榜  
...(5个对象的信息依次显示)  

程序结束时会打印__del__方法的提示,因为对象被销毁) 

 

七、给新手的互动问题

  1. 你觉得__str__方法有什么用?如果不写这个方法,直接打印对象会显示什么?
  2. 试试把__del__方法注释掉,程序结束时还会有 “不再喜欢” 的提示吗?为什么?

欢迎在评论区留下你的答案或学习疑问,我们一起讨论~ 如果你也是刚学 Python 的小白,这道题真的很适合练手,推荐亲自敲一遍代码哦!

标签

#Python 入门 #面向对象编程 #类与对象 #新手实战 #编程学习日记

通过这道题,我真正体会到 “实战是最好的老师”—— 哪怕代码简单,只要亲手实现并解决报错,就能深刻理解知识点。期待和大家一起解锁更多 Python 小项目,下次博客见啦! 🚀

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值