Python:创建一个 month() 函数以将 1 - 12 作为输入和 return 对应的月份
Python: Creating a month() function to take 1 - 12 as input and return corresponding month
我目前正在尝试创建一个 month() 函数,它将数字 1 到 12 作为输入,return 相应月份的三个字符缩写。我需要在不使用 if 语句和使用字符串操作的情况下执行此操作。我还必须使用一个字符串来存储所有缩写。我目前对这个功能感到困惑,以至于我什至想不出一种方法来开始它,这似乎是那些对我来说很复杂的简单问题之一。
提前感谢您抽出时间。
切片操作允许您 return 一段较大的字符串。
>>> 'abcde'[2:4]
'cd'
>>> 'fghijkl'[2:2+3]
'hij'
我不确定还有哪些其他限制,但拆分是一个字符串操作。所以,这样的事情应该有效:
split,会将字符串变成一个列表,然后你只需return你提供的索引对应的值。 “-1”是因为列表总是从索引 0 开始。
def month(n):
a = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split()
return a[n - 1]
演示:
月 (4) -> 4 月
没有限制,将数字转换为三个字母的月份缩写的理想方法是使用 Python 的日期时间:
from datetime import datetime
datetime.strptime('4', '%m').strftime('%b')
上面会输出'Apr'
def month(num):
month = 'JanFebMarAprMayJunJulAugSepOctNovDec'
print month[(num-1)*3:num*3]
def month(n):
end = 3*n - 1
start = end - 2
return 'JanFebMarAprMayJunJulAugSepOctNovDec'[start:end+1]
for i in range(1,13):
print(month(i))
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
另一种变体:
>>> for m in range(1, 13):
print 'JanFebMarAprMayJunJulAugSepOctNovDec'[:3*m][-3:],
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
还有一个:
>>> for m in range(1, 13):
print ' JFMAMJJASONDaeapauuuecoenbrrynlgptvc'[m::12],
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
我目前正在尝试创建一个 month() 函数,它将数字 1 到 12 作为输入,return 相应月份的三个字符缩写。我需要在不使用 if 语句和使用字符串操作的情况下执行此操作。我还必须使用一个字符串来存储所有缩写。我目前对这个功能感到困惑,以至于我什至想不出一种方法来开始它,这似乎是那些对我来说很复杂的简单问题之一。
提前感谢您抽出时间。
切片操作允许您 return 一段较大的字符串。
>>> 'abcde'[2:4]
'cd'
>>> 'fghijkl'[2:2+3]
'hij'
我不确定还有哪些其他限制,但拆分是一个字符串操作。所以,这样的事情应该有效:
split,会将字符串变成一个列表,然后你只需return你提供的索引对应的值。 “-1”是因为列表总是从索引 0 开始。
def month(n):
a = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split()
return a[n - 1]
演示:
月 (4) -> 4 月
没有限制,将数字转换为三个字母的月份缩写的理想方法是使用 Python 的日期时间:
from datetime import datetime
datetime.strptime('4', '%m').strftime('%b')
上面会输出'Apr'
def month(num):
month = 'JanFebMarAprMayJunJulAugSepOctNovDec'
print month[(num-1)*3:num*3]
def month(n):
end = 3*n - 1
start = end - 2
return 'JanFebMarAprMayJunJulAugSepOctNovDec'[start:end+1]
for i in range(1,13):
print(month(i))
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
另一种变体:
>>> for m in range(1, 13):
print 'JanFebMarAprMayJunJulAugSepOctNovDec'[:3*m][-3:],
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
还有一个:
>>> for m in range(1, 13):
print ' JFMAMJJASONDaeapauuuecoenbrrynlgptvc'[m::12],
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec