1. ホーム
  2. python

[解決済み] Python - % でサポートされていないオペランド型: 'list' および 'int' です。

2022-02-14 07:11:32

質問

stackoverflowの他の質問も見てみましたが、内容が違っていて、この質問には当てはまらないようなので、ここに書いておきます。

私は、1-49の間のすべての数字をプリントアウトして、range関数を使ってリストに入れる簡単なスクリプトを書きました。

さて、どの数字が奇数でどの数字が偶数なのかを調べる関数を定義しましたので、以下にコードを示します。

def check(number):
    if number%2==0:
        print "Even Numbers:",(number)
    else:
        print "Odd Numbers:",(number)


a = range(1,50)

print a

check(a)

スクリプトを実行すると、以下のエラーが発生します。

unsupported operand type(s) for %: 'list' and 'int'

ということは、%演算子が'lists'や'ints'をサポートできないということだと思うのですが、どうしたら直るのでしょうか?

こんなことをやってみました。

def check(number):
    if number%2==0:
        print "Even Numbers:",(number)
    else:
        print "Odd Numbers:",(number)


a = range(1,50)

b = str(a)

check(str(a))

しかし、エラーが発生する。

Traceback (most recent call last):
  File "showEvenNumbers.py", line 12, in <module>
    check(str(a))
  File "showEvenNumbers.py", line 2, in check
    if number%2==0:
TypeError: not all arguments converted during string formatting

だから、どうしたらいいのかちょっとわからないんです。

何かお手伝いいただけると助かります。

解決方法は?

a はリストですが check は単一の整数を期待します。リストに対して反復処理を行う必要があります。

for item in a:
    check(item)