鱼C论坛

 找回密码
 立即注册
查看: 2225|回复: 5

[已解决]一道练习题题意分析

[复制链接]
发表于 2022-11-25 14:37:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写一个 Python 类 Flower,它有三个实例变量,类型分别为 str、int 和 float,
分别代表花的名称、花瓣数量和价格。
您的类必须包含一个初始值设定项,该初始值设定项将每个变量初始化为适当的值,
并且您的类应包含用于设置每种类型的值和检索的方法
每个类型的值。您的程序应该足够健壮,可以处理可能
不适当的输入。

就是这道题,他的意思是不是说,我这样写:
class Flower:
      name = '一种花'
      nums = 7
      price = 1.5
      def allow_input():  #允许用户更改成自己心仪的数值,且如果用户输入不恰当的类型,不会报错而是提醒用户输入正确类型,直至输入正确为止
              pass

大体我打算这样写,请问大家觉得这样符合题意吗?总感觉哪里怪怪的,但是用init也不对叭?。。。。
最佳答案
2022-11-25 14:49:23
这个是我的理解
  1. class Flower:
  2.     def __init__(self, name = '一种花', nums = 7, price = 1.5):
  3.         if not(isinstance(name, str) and isinstance(nums, int) and isinstance(price, float)):
  4.             print('输入不合法!')
  5.             return
  6.         self.name = name
  7.         self.nums = nums
  8.         self.price= price

  9.         
  10. Flower()
  11. <__main__.Flower object at 0x00000250D6E8E470>
  12. x = Flower()
  13. x.name
  14. '一种花'
  15. x.nums
  16. 7
  17. x.price
  18. 1.5
  19. y = Flower('花', 1.1, 7)
  20. 输入不合法!
  21. y = Flower('花', 10, 1.1)
  22. y
  23. <__main__.Flower object at 0x00000250D6E8E470>
  24. y.name
  25. '花'
  26. y.nums
  27. 10
  28. y.price
  29. 1.1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-25 14:43:43 | 显示全部楼层
         这种题仅靠文字描述是远远不够的,每一种要求必须进行举例说明,否则,难以严谨、准确把握题目要求。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-25 14:49:23 | 显示全部楼层    本楼为最佳答案   
这个是我的理解
  1. class Flower:
  2.     def __init__(self, name = '一种花', nums = 7, price = 1.5):
  3.         if not(isinstance(name, str) and isinstance(nums, int) and isinstance(price, float)):
  4.             print('输入不合法!')
  5.             return
  6.         self.name = name
  7.         self.nums = nums
  8.         self.price= price

  9.         
  10. Flower()
  11. <__main__.Flower object at 0x00000250D6E8E470>
  12. x = Flower()
  13. x.name
  14. '一种花'
  15. x.nums
  16. 7
  17. x.price
  18. 1.5
  19. y = Flower('花', 1.1, 7)
  20. 输入不合法!
  21. y = Flower('花', 10, 1.1)
  22. y
  23. <__main__.Flower object at 0x00000250D6E8E470>
  24. y.name
  25. '花'
  26. y.nums
  27. 10
  28. y.price
  29. 1.1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-25 14:51:03 | 显示全部楼层

哇恍然大悟!!!谢谢大佬啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-25 14:51:30 | 显示全部楼层
jackz007 发表于 2022-11-25 14:43
这种题仅靠文字描述是远远不够的,每一种要求必须进行举例说明,否则,难以严谨、准确把握题目要 ...

支持!!!但是题目原来就长这样,真的很崩溃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-25 14:53:14 | 显示全部楼层
对,就是一个class的事,但是你初始按理来说不是应该整到init里去么,这样看着不习惯
过程中要考虑并处理输入错误这种情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 19:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表