鱼C论坛

 找回密码
 立即注册
查看: 804|回复: 3

[已解决]为什么我得return他输出不不出来

[复制链接]
发表于 2024-9-22 11:19:53 | 显示全部楼层 |阅读模式

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

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

x
class Rectangle:
    length = None

    width = None

    def set_length(self):

        self.length = float(input("请输入矩形的长度:"))

    def set_width(self):

        self.width = float(input("请输入矩形的宽度:"))

    def get_perimeter(self):

        if not self.length:
            self.set_length()

        if not self.width:
            self.set_width()

        return (self.length + self.width) * 2

    def get_area(self):

        if not self.length:
            self.set_length()

        if not self.width:
            self.set_width()
        return self.length * self.width
最佳答案
2024-9-22 12:57:07
如果鱼油想查看或打印 get_area 方法的返回值,你需要确保你在调用这个方法时使用 print 函数。

例如,你应该这样做:

  1. d = Rectangle()
  2. area = d.get_area()
  3. print(area)
复制代码

你的代码中,调用 d.get_area() 是正确的,但如果你没有使用 print 函数,Python 默认不会在脚本模式下显示方法的返回值。

只有在交互模式下(比如在一个 Python 解释器或者使用 Jupyter Notebook时),才会显示返回值。

此外,确保你的 Rectangle 类初始化了 length 和 width 的属性。

这样,即使在没有手动设置长度和宽度的情况下,也可以通过调用 set_length 和 set_width 方法在 get_area 和 get_perimeter 中设置这些属性。

如果你运行的环境支持输入,你的方法看起来应该可以正常工作。

但请注意,如果你在一个不支持标准输入的环境中运行这段代码(例如某些类型的自动化脚本环境),input 函数可能会导致错误或挂起。
1726975116779.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-9-22 11:23:31 | 显示全部楼层
你好,鱼油!

从你的描述来看,应该是调用了方法但是没有输出。需要使用 `print` 函数来显示 `return` 的结果。

例子:
  1. rect = Rectangle()
  2. print("周长是:", rect.get_perimeter())
  3. print("面积是:", rect.get_area())
复制代码


这样会调用类中的方法并输出结果。

另外,注意代码里的 `if not self.length` 和 `if not self.width`,这在初始情况下是有效的,但如果输入 `0` 作为长度或者宽度时会不正确,可以改成:

  1. if self.length is None:
  2.     self.set_length()

  3. if self.width is None:
  4.     self.set_width()
复制代码


以下是修改后的完整代码:
  1. class Rectangle:
  2.     length = None
  3.     width = None

  4.     def set_length(self):
  5.         self.length = float(input("请输入矩形的长度:"))

  6.     def set_width(self):
  7.         self.width = float(input("请输入矩形的宽度:"))

  8.     def get_perimeter(self):
  9.         if self.length is None:
  10.             self.set_length()
  11.         if self.width is None:
  12.             self.set_width()
  13.         return (self.length + self.width) * 2

  14.     def get_area(self):
  15.         if self.length is None:
  16.             self.set_length()
  17.         if self.width is None:
  18.             self.set_width()
  19.         return self.length * self.width

  20. # 实例化对象并打印结果
  21. rect = Rectangle()
  22. print("周长是:", rect.get_perimeter())
  23. print("面积是:", rect.get_area())
复制代码


希望这对你有帮助!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-22 12:29:47 | 显示全部楼层
需要print ,只有在交互式中return 才会输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-22 12:57:07 | 显示全部楼层    本楼为最佳答案   
如果鱼油想查看或打印 get_area 方法的返回值,你需要确保你在调用这个方法时使用 print 函数。

例如,你应该这样做:

  1. d = Rectangle()
  2. area = d.get_area()
  3. print(area)
复制代码

你的代码中,调用 d.get_area() 是正确的,但如果你没有使用 print 函数,Python 默认不会在脚本模式下显示方法的返回值。

只有在交互模式下(比如在一个 Python 解释器或者使用 Jupyter Notebook时),才会显示返回值。

此外,确保你的 Rectangle 类初始化了 length 和 width 的属性。

这样,即使在没有手动设置长度和宽度的情况下,也可以通过调用 set_length 和 set_width 方法在 get_area 和 get_perimeter 中设置这些属性。

如果你运行的环境支持输入,你的方法看起来应该可以正常工作。

但请注意,如果你在一个不支持标准输入的环境中运行这段代码(例如某些类型的自动化脚本环境),input 函数可能会导致错误或挂起。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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