我知道为了循环回到开始我需要将它包含在"而#34;环。但是,如果用户输入的字符超过必要的数量,我已经有一个while循环重启。我应该改变那个条件吗?或者是否可以在不添加功能的情况下解决此问题?
-edit-我不明白的错误:这是我的实际代码
abb_dict = {
'lol': 'laughing out loud',
'bfn': 'bye for now',
'cuz': 'because',
'omw': 'on my way',
'tbh':'to be honest',
'afk':'away from keyboard',
'brb':'be right back',
'afaik':'as far as i know',
'np':'no problem',
'rofl':'rolling on floor laughing',
'asap': 'as soon as possible',
}
for k, v in abb_dict.items(): # list all the abbreviations available to be translated
print k, v
tweet_str = raw_input('Enter the sentence with an abbreviation in it :\n').lower()
while len(tweet_str) > 160: ## if tweet_str passes 160 characters it will display a message
print "Too long, keep it less than 160 characters"
tweet_str= raw_input('Enter the sentence with an abbreviation in it :\n').lower()# prompts user to re-enter new string
for k in abb_dict: # looks for any key variable in dictionary
if k in tweet_str: # if the key is seen in the user input
print k, abb_dict[k] # prints key variable along with dictionaries value which is the definition of the abbreviation
for key, value in abb_dict.iteritems():
tweet_str = tweet_str.replace(key, value) #replaces abbreviations with their definition
print tweet_str
答案 0 :(得分:0)
while循环仅在字符串的长度大于100时运行。
代码:
len(str) > 100
应该是:
len(str) < 100
如果您希望循环执行,如果字符串的长度小于100,则根据您的评论。
答案 1 :(得分:0)
目前,您有一个线性程序。
它收集用户输入。
如果用户输入太大,它会一直要求输入,直到输入很少。
然后对输入进行一些处理
结束
如果您希望重复整个系统,则需要一个外部循环和良好的退出条件(循环何时结束)。类似下面的伪代码。
str = raw_input
while toLower(str) != "exit"
while len(str) > 100
...
#your other code
...
str = raw_input
wend