如何将用户输入少于140个字符?

时间:2013-07-08 04:46:36

标签: python

我正在开发一个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

感谢您的帮助

3 个答案:

答案 0 :(得分:3)

userInput = str(input("Enter The Sentense: "))
truncatedInput = userInput[:140]

答案 1 :(得分: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,一个用于快速学习的有用链接this.

您的错误说明 -

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

如果userInput的长度为5,那么访问第6个元素会产生错误,因为不存在这样的元素。同样,您尝试访问元素直到140,因此得到此错误。如果您要做的就是将字符串拆分成字符,那么,一个简单的方法就是 -

>>> testString = "Python"
>>> list(testString)
['P', 'y', 't', 'h', 'o', 'n']

答案 2 :(得分:2)

for i in range(140)假设字符串中有140个字符。当您完成字符串的迭代后,就不会成为索引n,因此会出现错误。

您可以随时遍历字符串:

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

[:140]Python's Slice Notation,它将字符串从第一个字符切换到第140个字符串。即使没有第140个字符,它也只是到了字符串的末尾。