了解我的循环没有重新启动的原因

时间:2016-04-13 20:47:44

标签: python python-2.7 loops for-loop while-loop

我知道为了循环回到开始我需要将它包含在"而#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

2 个答案:

答案 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