split()関数は標準入力を文字列として分割するのですよね?
概ね、はい。標準入力が絡んでいるのはinputの方ではありますが。
Python
1>>> input().split()
212 34
3['12', '34']
4>>>
5>>> '12 34'.split()
6['12', '34']
7>>>
8>>> s = '12 34'
9>>> s.split()
10['12', '34']
12 34
のような入力を上手く捌くには、
まず分割してからそれぞれをintにキャストしないといけません。
Python
1>>> ab = input().split()
212 34
3>>> ab
4['12', '34']
5>>>
6>>> int(ab[0])
712
8>>> int(ab[1])
934
なお、次のように書くこともできます。
Python
1>>> a, b = map(int, input().split())
212 34
3>>>
4>>> a
512
6>>> b
734
エラーの再現
i = int(input()).rstrip().split(" ")
...
ValueError: invalid literal for int() with base 10: '12 45'
カッコの対応がおかしく、int(input())を先に処理しようとしてしまっています。
Python
1>>> int(input())
212 34
3Traceback (most recent call last):
4 File "<stdin>", line 1, in <module>
5ValueError: invalid literal for int() with base 10: '12 34'
intを消してみると
...
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
先にも述べたように、リストの各要素をintにキャストしてやらねばいけないのです。
Python
1>>> ab = input().split()
212 34
3>>>
4>>> ab
5['12', '34']
6>>>
7>>> int(ab[0])
812
9>>> int(ab)
10Traceback (most recent call last):
11 File "<stdin>", line 1, in <module>
12TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
リストはintに直せないよ、とメッセージに書いてありますね。
エラーメッセージの意味もよくわからないのでデバックできません。
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
『型エラー: int()の引数は文字列かバイト列、数値でなくてはならない。リストじゃダメよ』
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。