叫我余派森 发表于 2024-9-22 11:19:53

为什么我得return他输出不不出来

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

FishC 发表于 2024-9-22 11:23:31

你好,鱼油!

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

例子:
rect = Rectangle()
print("周长是:", rect.get_perimeter())
print("面积是:", rect.get_area())

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

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

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

if self.width is None:
    self.set_width()

以下是修改后的完整代码:
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 self.length is None:
            self.set_length()
      if self.width is None:
            self.set_width()
      return (self.length + self.width) * 2

    def get_area(self):
      if self.length is None:
            self.set_length()
      if self.width is None:
            self.set_width()
      return self.length * self.width

# 实例化对象并打印结果
rect = Rectangle()
print("周长是:", rect.get_perimeter())
print("面积是:", rect.get_area())

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-9-22 12:29:47

需要print ,只有在交互式中return 才会输出

不二如是 发表于 2024-9-22 12:57:07

如果鱼油想查看或打印 get_area 方法的返回值,你需要确保你在调用这个方法时使用 print 函数。

例如,你应该这样做:

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

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

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

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

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

但请注意,如果你在一个不支持标准输入的环境中运行这段代码(例如某些类型的自动化脚本环境),input 函数可能会导致错误或挂起。
页: [1]
查看完整版本: 为什么我得return他输出不不出来