1

Тема: Переклад місяців

from datetime import datetime
def monthx():
    MO = now.strftime("%m")
    if MO == 12:
            q = "Грудень"
            return q
    else:
        if MO == 11:
            q = "Листопад"
            return q

print(monthx())

Результат None

Не пряцює, як краще зробити цю фукнцію, перекладу місяця?
Дякую

2

Re: Переклад місяців

Замість "не працює" пишіть конкретно, що відбувається. Якщо повідомлення про помилку - яку і де і т.д. і код беріть у теги code (кнопка <>).
now - це функція datetime, тобто писати треба datetime.now і додати виклик ()
strftime перетворює час на стрічку. Вам стрічка не потрібна, вам потрібен номер місяця - це поле .month:

mo = datetime.now().month

Замість ланцюжка if-else краще використовуйте список, але то вже на ваш смак.

3

Re: Переклад місяців

MO = now.strftime("%m")
%m Місяць у вигляді десяткового числа з додаванням нуля
все вірно, це номер мысяця вертаэ 12
не бачу (кнопка <>) де вона?
у терміналі пише
(discord) PS D:\discord> & C:/Users/Gena/.virtualenvs/discord-q4ERoUCO/Scripts/python.exe d:/discord/functions/timebot.py
None

4

Re: Переклад місяців

genabox написав:

%m Місяць у вигляді десяткового числа з додаванням нуля
все вірно, це номер мысяця вертаэ 12

Ні, '12'. Ви різницю між 12 і '12' розумієте? Між числом і стрічкою? Наприклад, що 1+2=3, а '1'+'2'='12'?

genabox написав:

не бачу (кнопка <>) де вона?

Осьдечки:
https://replace.org.ua/uploads/images/931/ae1b39e566565ab20612fc27d1c13351.png

genabox написав:

у терміналі пише

Не знаю, чому у вас так пише. Можливо, це не весь код або не той код. У мене чітко повідомляє про помилку.

5

Re: Переклад місяців

Дякую за допомогу,
так запрацювало

def monthx():
    MO = now.strftime("%m")
    if MO == str(12):
         
            return "Грудень"
    else:
        if MO == 11:
         
            return "Листопад"      

print(monthx())

Не знав що ще стринг:)
Кнопка код у мене маэ інший вигляд ->"code"

6

Re: Переклад місяців

def monuthname():
    monthdic = {
        'January': 'Січень',
        'February': 'Лютий',
        'March': 'Березень',
        'April': 'Квітень',
        'May': 'Травень',
        'June': 'Червень',
        'July': 'Липень',
        'August': 'Серпень',
        'September': 'Вересень',
        'October': 'Жовтень',
        'November': 'Листопад',
        'December': 'Грудень'}
    mouth_name = now.strftime("%B")
    for key in monthdic.keys():
        if key == mouth_name:
            x = monthdic.get(key)
            return x
print (monuthname())

Готово

7

Re: Переклад місяців

genabox написав:
    for key in monthdic.keys():
        if key == mouth_name:
            x = monthdic.get(key)
            return x

Це

return monthdic.get(mouth_name, None)

у чотири рядки чи

try:
    return monthdic[mouth_name]
except:
    pass

у три рівні вкладеності?

8

Re: Переклад місяців

def monuthname():
       monthdic = {
        'January': 'Січень',
        'February': 'Лютий',
        'March': 'Березень',
        'April': 'Квітень',
        'May': 'Травень',
        'June': 'Червень',
        'July': 'Липень',
        'August': 'Серпень',
        'September': 'Вересень',
        'October': 'Жовтень',
        'November': 'Листопад',
        'December': 'Грудень'}
    mouth_name = now.strftime("%B")
    try:
        return monthdic[mouth_name]
    except:
        pass
print(monuthname())

можно так :)