Печать названия месяца из списка - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь напечатать 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)

Ответы [ 5 ]

0 голосов
/ 15 октября 2018

Вы можете назвать это одним из следующих способов:

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]

см. calendar документацию .

аргумент может быть либо индексом, либоломтик.Вы передаете ему целый список ...

0 голосов
/ 15 октября 2018

Используйте понимание списка, чтобы создать новый список названий месяцев.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, затем используйте диапазон (1,13)

bn = [calendar.month_name[i] for i in range(1,13)]

или просто используйте слайс

bn = calendar.month_name[1:13]
0 голосов
/ 15 октября 2018

В скриптах 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`
0 голосов
/ 15 октября 2018

метод 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]) 
0 голосов
/ 15 октября 2018

Вы должны перебрать свой массив 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...