-1
プログラムのアイデアは"言語 "を取り、数値に変換することです。 10 P 20 T = 40 V = 10より小さい80 何が正常な数で表現される言語は非常に簡単構築さ"'int'オブジェクトには属性 'getal'がありません。自己作成クラスPyhton
Kは= =
今番号はいけません私はこれを説明するので、私がここで達成しようとするものを得るのは簡単です。
私は以下のように見える "Mangarevaans" と呼ばれるクラスを構築:私はdoctestの
"""
>>>612 // Mangarevaans(26)
Mangarevaans('P3')
"""
を実行したいとき
def mag2arab(getal): #this function is designed to turn the letters into the normal numbers we're used to
mag = str(getal)
waarde = {"K": 10, "P": 20, "T": 40, "V": 80}
arab = 0
for index, j in enumerate(mag):
if index == 0 and j.isnumeric():
if len(getal) == 1:
x = 0
else:
x = 1
arab += int(j) * waarde[mag[x]]
elif j.isnumeric():
arab += int(j)
elif not (str(mag[0]).isnumeric() and index == 1):
arab += waarde[j]
return arab
class Mangarevaans():
"""
>>>612 // Mangarevaans(26)
Mangarevaans('P3')
"""
def __init__(self, getal):
if isinstance(getal, int):
assert 1 <= getal < 799, 'ongeldige waarde' #this is one of the rules of the language that if there is a number it should be between these values
self.getal = getal
else:
for letter in getal:
if isinstance(getal, str):
for letter in getal:
if letter in "VTPK":
self.getal = getal
else:
raise AssertionError('ongeldige waarde')
self.getal = mag2arab(getal)
def __int__(self):
return self.getal
def __str__(self):
return arab2mag(self.getal)
def __repr__(self):
return f"Mangarevaans('{str(arab2mag(self.getal))}')"
def __rfloordiv__(other, self):
return Mangarevaans(other // self.getal) #The problem occurs here
は今、私は
を言ってエラーが出ます'int'オブジェクトには属性 'getal'がありません
が、私は文字列に私の自己を変更した場合、私は、属性「getalは」「STRに属している場合
「strの」オブジェクトは、私が定義することができますどのように何の属性「getal」
を持っていません取得"または" int "?
誰でも手伝ってもらえますか?
どうもありがとうすでに
:代わりの
を。ありがとうございました –
それは助けてよかった。ところで、あなたは[upvote](http://stackoverflow.com/help/privileges/vote-up)の特権を持っています。 ;) –
私は十分に「経験」がなかったので、以前はうまくいきませんでした:D –