python class Book: def __init__(self,name,number,price): self.name=name self.number=number self.price=price def __del__(self): print('Book destroyed-{},{},{:.2f}'.format((self.name,self.number,self.price))) sName = input() sNo = input() fPrice = float(input()) b = Book(sName,sNo,fPrice) b = None 哪里错了
时间: 2024-03-20 22:39:44 浏览: 101
代码中没有明显的语法错误,但是在执行时会出现错误。原因是在创建 Book 对象后,将其赋值为 None,这样会导致对象无法正常使用,也没有办法调用对象的方法。所以,建议删除 `b = None` 这一行代码,这样对象就能正常使用了。另外,在 `__del__` 方法中,应该使用一个括号将三个参数括起来,而不是使用两个括号,正确的代码如下所示:
```python
class Book:
def __init__(self,name,number,price):
self.name=name
self.number=number
self.price=price
def __del__(self):
print('Book destroyed-{}, {}, {:.2f}'.format(self.name, self.number, self.price))
sName = input()
sNo = input()
fPrice = float(input())
b = Book(sName, sNo, fPrice)
```
相关问题
5.设计一个book类,包括name,price,number三个属性,分别表示书名,价格和数量,方法包括show)输出书的name,price,number和total信息(total为总金额 ,等于price*number),在主块中 定义book类的一个对象,用户输入name,price和number作为对象的属性,调用show方法显示该书的信息(price和金额保留2位小数,number为整数)。 【注意】 运行效果应如下所示,格式错误算结果错误。 测试1:(第1行为输入,第2行为输出) Python', 20. 00. 5 name=Python price=20. 00 number=5 total=100.00
下面是一个示例代码实现:
```python
class Book:
def __init__(self, name, price, number):
self.name = name
self.price = price
self.number = number
def show(self):
total = self.price * self.number
print(f"name={self.name} price={self.price:.2f} number={self.number} total={total:.2f}")
name = input("请输入书名:")
price = float(input("请输入价格:"))
number = int(input("请输入数量:"))
book = Book(name, price, number)
book.show()
```
运行效果如下:
```
请输入书名:Python
请输入价格:20.00
请输入数量:5
name=Python price=20.00 number=5 total=100.00
```
5.设计一个book类,包括name,price,number三个属性,分别表示书名,价格和数量,方法包括show()输出书的name,price,number和total信息(total为总金额,等于price*number)。在主模块中定义book类的一个对象,用户输入name,price和number作为对象的属性,调用show方法显示该书的信息(price和金额保留2位小数,number为整数)。 【注意】运行效果应如下所示,格式错误算结果错误。 测试1:(第1行为输入,第2行为输出) 'Python',20.00,5 name=Python price=20.00 number=5 total=100.00
以下是实现book类和主模块的代码:
```python
class book:
def __init__(self, name, price, number):
self.name = name
self.price = price
self.number = number
self.total = round(price * number, 2)
def show(self):
print("name={}, price={:.2f}, number={}, total={:.2f}".format(self.name, self.price, self.number, self.total))
name = input("请输入书名:")
price = float(input("请输入价格:"))
number = int(input("请输入数量:"))
book1 = book(name, price, number)
book1.show()
```
运行效果如下:
```
请输入书名:Python
请输入价格:20.00
请输入数量:5
name=Python, price=20.00, number=5, total=100.00
```
注意,这里对于价格和总金额保留了2位小数,并使用了round函数进行四舍五入处理。如果不需要保留小数,可以将格式化字符串中的"{:.2f}"改为"{}"。
阅读全文