python:在循环中使用else语句的条件语句

时间:2013-09-06 14:58:01

标签: python loops if-statement conditional

我如何才能使if语句更有效?

        if ',' in my_string:
            my_string = my_string.split(',', 1)[0]
            return ', '
        elif '.' in my_string:
            my_string = my_string.split('.', 1)[0]
            return '. '
        elif '?' in my_string:
            my_string = my_string.split('?', 1)[0]
            return '? '
        elif '!' in my_string:
            my_string = my_string.split('!', 1)[0]
            return '! '
        elif ';' in my_string:
            my_string = my_string.split(';', 1)[0]
            return '; '
        else:    
            self.qstring = my_string
            return None

我可以列出如下列表:

my_list = [',', '.', '?', '!', ';'] 

并循环,但我不知道如果我把它全部放在一个循环中仍然如何使用else语句。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

遍历您拥有的列表:

for delim in my_list:
    if delim in my_string:
        my_string = my_string.split(delim, 1)[0]
        return delim + ' '

self.qstring = my_string
return None

因为如果任何分隔符匹配,循环将return 之后部分的循环不执行。

答案 1 :(得分:1)

使用re

import re

(mystring, delim) = re.split(r'([,\.\?;] )', mystring, 1)[:2]
return delim

答案 2 :(得分:0)

删除my_string的所有作业。因为这是一个局部变量,所以没有任何结果,因为永远不会返回该值。