番兵法により、リスト内のある要素を見つけるプログラムです(while Trueではなくfor文を使っているので、番兵法を使う意味はあまりないような感じではありますが...)
python
1from typing import Any, Sequence 2import copy 3 4def banpe(a: Sequence, key: Any) -> int: 5 c = copy.deepcopy(a) 6 c.append(key) 7 for i in range(0, len(c)): 8 if key == c(i): 9 return i 10 return -1 11 12if __name__ == '__main__': 13 n = int(input('要素数:')) 14 x = [None] * n 15 16 for i in range(n): 17 x[i] = int(input(f'x[{i}] = ')) 18 19 idx = int(input('探す値:')) 20 21 print(f'それはx[{banpe(x, idx)}]にあります。')
こちらエラーが出てしまうのですが、原因がわかりません。
error
1--------------------------------------------------------------------------- 2TypeError Traceback (most recent call last) 3<ipython-input-4-6ccf56cba9a3> in <module> 4 19 idx = int(input('探す値:')) 5 20 6---> 21 print(f'それはx[{banpe(x, idx)}]にあります。') 7 8<ipython-input-4-6ccf56cba9a3> in banpe(a, key) 9 6 c.append(key) 10 7 for i in range(0, len(c)): 11----> 8 if key == c(i): 12 9 return i 13 10 return -1 14 15TypeError: 'list' object is not callable
copyはちゃんとインポートされていて、deepcopyが機能していることは確認済なので、
何が原因でリストが呼べないのかわかりません。
回答お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/24 05:39