我正在尝试从列表中打印month_name
,但是正在使用此list
来获取calendar module
,但是我收到了此错误
TypeError:列表索引必须是整数或切片,而不是列表
但是当我将list
转换为integer
仍然不能解决问题。
如何从月份中打印月份名称。
import calendar
month_value = ["01","02","03","04","05","06","07","08","09","10","11","12"]
print(month_value)
bn = calendar.month_name[month_value]
print(bn)
答案 0 :(得分:1)
使用列表推导来创建新的月份名称列表。 month_name
期望一个整数值将其解析为月份名称,您正在传递整个列表,或者可能是列表的一部分。
import calendar
month_value = [1,2,3,4,5,6,7,8,9,10,11,12]
print(month_value)
bn = [calendar.month_name[i] for i in month_value]
print(bn)
输出:
['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
或者您只需要name_list然后使用range(1,13)
bn = [calendar.month_name[i] for i in range(1,13)]
或仅使用切片
bn = calendar.month_name[1:13]
答案 1 :(得分:0)
您必须遍历month_value数组。 (例如,使用for循环或嵌入式)
import calendar
month_value = [1,2,3,4,5,6,7,8,9,10,11,12]
print(month_value)
bn = []
for month in month_value:
bn.append(calendar.month_name[month])
print(bn)
输出:
['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
答案 2 :(得分:0)
方法month_name
接收一个整数,而不是您所接受的列表。
如果您想打印所有月份的名称,我建议:
import calendar
month_value = [1,2,3,4,5,6,7,8,9,10,11,12]
for month_number in month_value:
print(calendar.month_name[month_number])
答案 3 :(得分:0)
您可以通过以下方式之一进行呼叫:
import calendar
print(calendar.month_name[6:9]) # ['June', 'July', 'August']
print(calendar.month_name[3]) # 'March'
# this is the list of month names:
bn = calendar.month_name[1:13]
该参数可以是索引或切片。您正在将整个列表传递给它...
答案 4 :(得分:-2)
在bash中,脚本编写是这样的:
echo "Write a number from 1 - 12: "
read "$month"
case ("$month$") in
1) echo "January";;
2) echo "February";;
3) echo "March";;
...
12) echo "December";;
*) echo "Invalid number."
exit 1;;
exit 0`