分析以下python程序中endings=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']有啥作用?

months=['January','February','March','April','May','June','August','Septemper','October','November','December']
endings=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
year=raw_input('year:')
month=raw_input('month(1-12):')
day=raw_input('day(1-31):')
month_number=int(month)
day_number=int(day)
month_name=months[month_number-1]
ordinal=day+endings[day_number-1]
print month_name+''+ordinal+','+year

17*[th] 生成 一个长度为17的列表,元素均为'th'。+,将列表合并成一个大的列表。所以这行代码的作用时生成一个长度为31的后缀字符数组。这样就可以在day数字(1-31)后面 相应地加上后缀。如(1st, 2nd, 3rd, 4th, 5th, … , 19th, 20th, 21st, 22nd, 22rd, 23rd, 24th, … , 30th, 31st)。

>>> endings=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
>>> print endings
['st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st']

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-22
输入数字形式的年月日,输出英文形式。
相似回答