回答編集履歴

4

追記

2018/08/14 16:49

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -151,3 +151,17 @@
151
151
 
152
152
 
153
153
  リストはintに直せないよ、とメッセージに書いてありますね。
154
+
155
+
156
+
157
+ ---
158
+
159
+ > エラーメッセージの意味もよくわからないのでデバックできません。
160
+
161
+
162
+
163
+ **TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'**
164
+
165
+ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
166
+
167
+ **『型エラー: int()の引数は文字列かバイト列、数値でなくてはならない。リストじゃダメよ』**

3

追記

2018/08/14 16:49

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -4,7 +4,35 @@
4
4
 
5
5
  概ね、はい。標準入力が絡んでいるのはinputの方ではありますが。
6
6
 
7
+ ```Python
8
+
9
+ >>> input().split()
10
+
11
+ 12 34
12
+
13
+ ['12', '34']
14
+
15
+ >>>
16
+
17
+ >>> '12 34'.split()
18
+
19
+ ['12', '34']
20
+
21
+ >>>
22
+
23
+ >>> s = '12 34'
24
+
25
+ >>> s.split()
26
+
27
+ ['12', '34']
28
+
29
+ ```
30
+
31
+
32
+
33
+ `12 34`のような入力を上手く捌くには、
34
+
7
- ですので、まず分割してからそれぞれをintにキャストしないといけません。
35
+ まず分割してからそれぞれをintにキャストしないといけません。
8
36
 
9
37
  ```Python
10
38
 

2

修正

2018/08/14 16:34

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- はい。
5
+ 概ね、はい。標準入力が絡んでいるのはinputの方ではありますが。
6
6
 
7
7
  ですので、まず分割してから、それぞれをintにキャストしないといけません。
8
8
 

1

追記

2018/08/14 16:32

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -49,3 +49,77 @@
49
49
  34
50
50
 
51
51
  ```
52
+
53
+
54
+
55
+ エラーの再現
56
+
57
+ ---
58
+
59
+ > i = int(input()).rstrip().split(" ")
60
+
61
+ > ...
62
+
63
+ > ValueError: invalid literal for int() with base 10: '12 45'
64
+
65
+
66
+
67
+ カッコの対応がおかしく、int(input())を先に処理しようとしてしまっています。
68
+
69
+ ```Python
70
+
71
+ >>> int(input())
72
+
73
+ 12 34
74
+
75
+ Traceback (most recent call last):
76
+
77
+ File "<stdin>", line 1, in <module>
78
+
79
+ ValueError: invalid literal for int() with base 10: '12 34'
80
+
81
+ ```
82
+
83
+
84
+
85
+ > intを消してみると
86
+
87
+ > ...
88
+
89
+ > TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
90
+
91
+
92
+
93
+ 先にも述べたように、リストの各要素をintにキャストしてやらねばいけないのです。
94
+
95
+ ```Python
96
+
97
+ >>> ab = input().split()
98
+
99
+ 12 34
100
+
101
+ >>>
102
+
103
+ >>> ab
104
+
105
+ ['12', '34']
106
+
107
+ >>>
108
+
109
+ >>> int(ab[0])
110
+
111
+ 12
112
+
113
+ >>> int(ab)
114
+
115
+ Traceback (most recent call last):
116
+
117
+ File "<stdin>", line 1, in <module>
118
+
119
+ TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
120
+
121
+ ```
122
+
123
+
124
+
125
+ リストはintに直せないよ、とメッセージに書いてありますね。