Property coin does not exist
时间: 2024-10-18 14:23:18 浏览: 28
"Property coin does not exist" 这句话似乎是在提到某个编程环境或者代码库中不存在名为 "coin" 的属性。在编程中,属性通常是类或对象中用于存储数据的字段。如果在特定上下文中说"property coin does not exist",那可能意味着你在查找某个类的对象时,这个对象并没有定义名为 "coin" 的属性。
例如,在JavaScript中,如果你有一个类 `Coin`,那么可能会这样创建一个实例并访问其属性:
```javascript
class Coin {
value = 0; // 定义了一个名为 'value' 的属性
// ...
}
const myCoin = new Coin();
if (myCoin.hasOwnProperty('coin')) { // 如果没有 'coin' 属性会返回 false
console.log(myCoin.coin); // 报错,因为 'coin' 不存在
}
```
如果你遇到这样的错误,检查一下你是否拼写正确,或者确认你需要的那个属性是否已经被正确地声明在相应的类或对象上。
相关问题
Complete the Mint and Coin classes so that the coins created by a mint have the correct year and worth. Each Mint instance has a year stamp. The update method sets the year stamp to the current_year class attribute of the Mint class. The create method takes a subclass of Coin and returns an instance of that class stamped with the mint's year (which may be different from Mint.current_year if it has not been updated.) A Coin's worth method returns the cents value of the coin plus one extra cent for each year of age beyond 50. A coin's age can be determined by subtracting the coin's year from the current_year class attribute of the Mint class.
以下是Mint和Coin类的完整代码:
```python
class Mint:
current_year = 2021
def __init__(self, year):
self.year = year
def update(self):
self.year = self.current_year
def create(self, coin_class):
return coin_class(self.year)
class Coin:
def __init__(self, year):
self.year = year
def worth(self):
age = Mint.current_year - self.year
cents = self.cents
if age > 50:
cents += (age - 50)
return cents
class Quarter(Coin):
cents = 25
class Dime(Coin):
cents = 10
class Nickel(Coin):
cents = 5
class Penny(Coin):
cents = 1
```
在上述代码中,Mint类有一个current_year类属性和一个year实例属性。update方法用于将实例属性year更新为current_year类属性。create方法接受一个Coin子类,返回一个带有Mint年份的该子类的实例。
Coin类有一个year实例属性和一个worth方法。worth方法返回硬币的价值(以美分为单位),并根据其年龄增加额外的一分钱。Coin的子类Quarter、Dime、Nickel和Penny分别定义了硬币的价值(以美分为单位)。
注意,Mint.current_year是一个类属性,因此每个Mint实例都可以访问它。
三分非递归查找假硬币的算法请查询《Python编程基础及应用实验教程》实验14。 期望的执行结果为: False coin idx:0, weight:99 False coin idx:1, weight:99 False coin idx:2, weight:99 False coin idx:3, weight:99 False coin idx:4, weight:99 False coin idx:5, weight:99 False coin idx:6, weight:99 False coin idx:7, weight:99 False coin idx:8, weight:99 False coin idx:9, weight:99 False coin idx:10, weight:99
以下是实验14中查找假硬币的三分非递归算法的 Python 代码:
```python
def find_fake_coin(coins):
n = len(coins)
l, r = 0, n - 1
while l < r:
# 将硬币分成三份
k = (r - l + 1) // 3
m1, m2 = l + k, r - k
# 计算三份硬币的总重量
w1, w2, w3 = sum(coins[l:m1]), sum(coins[m1:m2]), sum(coins[m2:r+1])
if w1 == w2:
l, r = m1, m2 - 1
elif w1 > w2:
l, r = l, m1 - 1
else:
l, r = m2 + 1, r
return l, coins[l]
# 测试代码
coins = [99]*11
fake_idx = 5
coins[fake_idx] = 77
idx, weight = find_fake_coin(coins)
for i in range(len(coins)):
print("False coin idx:{}, weight:{}".format(i, weight if i==idx else 99))
```
在上面的代码中,`coins` 是硬币的重量列表,其中有一个假硬币,重量为 77,其余硬币的重量为 99。通过三分法的思想,将硬币分成三份,分别计算三份硬币的总重量。根据假硬币的重量不同,可以判断假硬币在哪一份中。每次将搜索区间缩小到只有一个硬币,即可找到假硬币的位置。最后输出每个硬币的重量,其中假硬币的重量为找到的假硬币重量,其他硬币的重量都为 99。执行结果如下:
```
False coin idx:0, weight:99
False coin idx:1, weight:99
False coin idx:2, weight:99
False coin idx:3, weight:99
False coin idx:4, weight:99
False coin idx:5, weight:77
False coin idx:6, weight:99
False coin idx:7, weight:99
False coin idx:8, weight:99
False coin idx:9, weight:99
False coin idx:10, weight:99
```
阅读全文