'index'変数は文字列ではなくintであると思われます。 int()を使用して変換できます。
index = int(index)
for i in range(string[index:]):
ここで、文字列[index:]も文字列になります。だからあなたもそれを変換する必要があります:
>>> string = "5"
>>> range(string)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: range() integer end argument expected, got str.
>>> range(int(string))
[0, 1, 2, 3, 4]
>>>
これは、文字列[インデックス:]には数字だけが含まれていると仮定しています。 the Wikipedia article on Pythonから
# 'index' contains only numbers
index = int(index)
number = string[index:]
if number.isdigit():
number = int(number)
for i in range(number):
:それは必ずしもそうではない場合、あなたが何かを行うことができます。この場合
Python uses duck typing and has typed objects but untyped variable names. Type constraints are not checked at compile time; rather, operations on an object may fail, signifying that the given object is not of a suitable type. Despite being dynamically typed, Python is strongly typed, forbidding operations that are not well-defined (for example, adding a number to a string) rather than silently attempting to make sense of them.
を、あなたは)(レンジに文字列を渡すためにしてみてください。この関数は数値(正の整数)を待ちます。そのため、文字列をintに変換する必要があります。あなたは実際にあなたのニーズに応じて、もう少しチェックをすることができます。 Pythonは型を気にします。
HTH、
この問題の原因は何でしょうか?これまでに何を試しましたか?あなたは何を探しましたか? http://stackoverflow.com/help/how-to-ask – RJHunter
あなたのコードを投稿してください –