如何比较python中的复杂字符串?

时间:2019-01-07 21:21:53

标签: python-3.x beautifulsoup

我刮了一个有土耳其月的网站,并编写了将其转换成公历月的代码; 但这不起作用。 如何比较像这样的复杂字符串?

if month=="Kasım":
    #tested
    #return "November"
    return 11
if month=="Aralık":
    #tested
    return 12
    #return "December"
if month=="Ekim":
    return 10
    #return "October"
if month=="Eylül":
    return 9
    #return "September"
if month=="Ağustos":
    return 8
    #return "August"
if month=="Temmuz":
    return 7
    #return "July"
if month=="haziran":
    return 6
    #return "June"
if month=="mayıs":
    return 5
    #return "May"
if month=="nisan":
    return 4
    #return "April"
if month=="mart":
    return 3
    #return "March"
if month=="şubat":
    return 2
    #return "February"
if month=="Ocak":
    return 1
    #return "January"

我从抓取的站点复制了字符串,但是我的转换器始终返回函数中第一个if的结果;例如:它总是返回11。 还有另一种比较方式吗?

1 个答案:

答案 0 :(得分:1)

如果将其制成字典,则可以直接访问它。

turkish_months = {
    "Kasım": 11, # "November"
    "Aralık": 12, # "December"
    "Ekim": 10, # "October"
    "Eylül": 9, # "September"
    "Ağustos": 8, # August"
    "Temmuz": 7, # "July"
    "haziran": 6, # "June"
    "mayıs": 5, # "May"
    "nisan": 4, # "April"
    "mart": 3, # "March"
    "şubat": 2, # "February"
    "Ocak": 1 # "January"
}

然后访问它:

current_month = "Ekim"
turkish_months[current_month]

如果您的代码始终返回11:我怀疑问题不在于转换,而在于您尝试转换的数据。您很有可能试图一次又一次地转换相同的数据,但是认为它们是不同的。在尝试转换之前,请尝试打印进入转换器的数据,这样可以确保其正常工作,然后移除打印件。