0

私はpythonプログラムに取り組んでいます。140 文字未満のユーザー入力を取得したい。文が単語制限を超えている場合は、140 文字を出力する必要があります。文字を入力することはできますが、これが起こります。私はpythonが初めてです。どうすればこれを達成できますか?

def isAlpha(c):
    if( c >= 'A' and c <='Z' or c >= 'a' and c <='z' or c >= '0' and c <='9'):
        return True
    else:
        return False


def main():
    userInput = str(input("Enter The Sentense: "))
    for i in range(140):
        newList = userInput[i]
        print(newList)

これは私が得る出力です

Enter The Sentense: this is
t
h
i
s

i
s
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    main()
  File "C:/Users/Manmohit/Desktop/anonymiser.py", line 11, in main
    newList = userInput[i]
IndexError: string index out of range

お手伝いありがとう

4

3 に答える 3

3
userInput = str(input("Enter The Sentense: "))
truncatedInput = userInput[:140]
于 2013-07-08T04:48:11.797 に答える
3

なぜ単にテストしないのlenですか?

if len(input) > 140:
   print "Input exceeds 140 characters."
   input = input[:140]

必要に応じて、これを使用して他のエラーを表示したり、プログラムを終了したりすることもできます。はinput = input[:140]、文字列の最初の 140 文字のみがキャプチャされるようにします。if入力の長さが 140 未満の場合、input = input[:140]行は実行されず、エラーは表示されないように、これは でラップされます。

これは Python の Slice Notation と呼ばれ、素早い学習に役立つリンクはこれです。

エラーの説明 -

for i in range(140):
    newList = userInput[i]
    print(newList)

長さが 5 の場合userInput、6 番目の要素にアクセスすると、そのような要素が存在しないため、エラーが発生します。同様に、140 まで要素にアクセスしようとすると、このエラーが発生します。文字列を文字に分割するだけの場合、簡単な方法は次のとおりです-

>>> testString = "Python"
>>> list(testString)
['P', 'y', 't', 'h', 'o', 'n']
于 2013-07-08T04:49:18.697 に答える
2

for i in range(140)文字列に 140 文字あると仮定します。文字列の反復処理が完了すると、 index がないnため、エラーが発生します。

文字列はいつでも反復できます。

for i in str(input("Enter a sentence: "))[:140]:
    print i

[:140]Python の Slice Notationで、文字列を最初の文字から 140 番目の文字まで切り取ります。140文字目がなくても、そのまま文字列の最後までいきます。

于 2013-07-08T04:51:21.973 に答える