当面の問題
コンマではなくS[0:a]
and (スライス)を使用するつもりだったのでしょう。S[a:len(S)]
スライスについての注意...
先頭のゼロまたは末尾のゼロを指定する必要はありませんlen(S)
。それらは暗黙的です。S[:a]
したがって、 andS[a:]
を同じ意味で使用できます。
S[0:a] + S[a:len(S)]
また、と同等であることに注意してくださいS
。おそらくそこに the を含めたくなかったので、おそらく代わり+
に使用したいと思うでしょう。S[a+1:len(S)]
文字列内の文字の位置を見つけることに関する別の注意
インデックスを手動でループする必要はありません.index()
。これを行うための文字列のメソッドが既にあります。
>>> "hello".index("e")
1
全体的な目標を達成するためのより簡単な方法
関数を使用してsplit()
、文字で区切られた文字列の一部を取得できます+
。
S = input()
number_strings = S.split('+')
numbers = [int(n) for n in number_strings]
print sum(numbers)
おまけとして、これは任意の数の数値に対して機能し1+2+3
ます4
。
3 行目では、リスト内包表記と呼ばれるものを使用して、リストの各要素を操作し、新しいリストを生成します。この場合、文字列のリストを取得して整数のリストを作成します。
4 行目は、Python の組み込みsum()
関数を利用して、アイテムのシーケンスの合計を自動的に返します。
上記の行を要約することもできることに注意してください。
print sum(int(n) for n in input().split('+'))
これははるかに整頓された形式です。説明を簡単にするために、上に間隔を空けて表示しました。