python
1from d import IntBag 2 3a=IntBag() 4a.readData() 5b=IntBag() 6for i in range(a.length()): 7 k=a.get(i)**3//37 8 b.append(k)
前提・実現したいこと
クラスの変数aに,整数を読み込む。
aにある整数すべてについて,3乗の値を37で割った値(小数点以下切り捨て)をクラスの変数bに入れていく。
aとbにある整数を順番通りに比べ,大きい値の方だけを印刷する。
変数に入れるところまではいいのですが、その後がうまくいきません。例えば、1,2,7を入力すると1,2,9と返ってくるはずなのですが、9だけであったり、1,2,7,9だったりします。
初学者で申し訳ないのですがどなたかご教授願えないでしょうか。よろしくお願いします。
該当のソースコード
class IntBag: def __init__(self): self.data=[] def length(self): return len(self.data) def set(self,i,a): self.data[i]=a def get(self,i): return self.data[i] def append(self,a): self.data.append(a) def readData(self): try: while True: self.data.append(int(input("整数を入力してください:"))) except EOFError: pass def printData(self): i=0 while i<len(self.data): print(self.data[i],end=' ') i+=1 from d import IntBag a=IntBag() a.readData() b=IntBag() for i in range(a.length()): k=a.get(i)**3//37 b.append(k)
### 試したこと ### 補足情報(FW/ツールのバージョンなど) python 3
回答2件
あなたの回答
tips
プレビュー