Уведомления

Группа в Telegram: @pythonsu

#1 Май 28, 2015 18:55:24

Vinci
Зарегистрирован: 2015-05-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать век?

Недавно начал изучать Python и решал задачки, но вот попалась та, которую решить я не могу. В общем, надо найти ввести год, а программа должна показать, какой это век. Я смог решить её только для года, где число цифр от 1 до 5. Не подскажете, как можно её решить для любого года?

Офлайн

#2 Май 28, 2015 18:57:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как узнать век?

Vinci
Я смог решить её только для года, где число цифр от 1 до 5.
показывайте решение



Офлайн

#3 Май 28, 2015 19:10:01

Vinci
Зарегистрирован: 2015-05-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать век?

a=int(input('Введите год: '))
def vek(a):
    if len(str(a)) == 2:
        return('Нулевой век')
    elif len(str(a)) == 3:
        d=int(str(a)[0]) + 1
        return(str(d) + ' век')
    elif len(str(a)) == 4:
        d=str(int(str(a)[0] + str(a)[1]) + 1)
        return(str(d) + ' век')
    elif len(str(a)) == 5:
        d=str(int(str(a)[0] + str(a)[1] + str(a)[2]) + 1)
        return(str(d) + ' век')
    else:
        return('Такому жизнь меня не готовила')
    
print(vek(a))

Отредактировано Vinci (Май 28, 2015 19:20:27)

Офлайн

#4 Май 28, 2015 19:41:46

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Как узнать век?

>>> 2016 / 100
20
>>> 123456789 / 100
1234567

Офлайн

#5 Май 28, 2015 19:43:07

Vinci
Зарегистрирован: 2015-05-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать век?

Ахххх, понятно, благодарю.

Офлайн

#6 Май 28, 2015 19:45:46

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как узнать век?

botinag
век в григорианском календаре



————————————————
-*- Simple is better than complex -*-

Офлайн

#7 Май 28, 2015 20:13:07

Vinci
Зарегистрирован: 2015-05-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать век?

Главное, что принцип понятен. Я всё сидел думал, как откинуть те две цифры, забыв напрочь о делении и что эти цифры после запятой можно легко убрать, сделав число целым
Беда лишь в том, что, да, в русском признано делать нумерацию на римском.

Собственно, код, учитывая, что век начинается с xxx1:

a=int(input('Введите год: '))
def vek(a):
    if a % 100 == 0:
        d = int(a/100)
    else:
        d = int(a/100) + 1
    return(str(d) + ' век')
    
print(vek(a))

Ещё раз большое спасибо!

Отредактировано Vinci (Май 28, 2015 20:41:47)

Офлайн

#8 Май 28, 2015 21:14:45

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Как узнать век?

q, r = divmod(a, b)
Есть такая часто выпадающая из виду функция.

Офлайн

#9 Май 28, 2015 23:11:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Как узнать век?

>>> def vek(year):
...     return year // 100 + (year % 100 != 0)
... 
>>> vek(1)
1
>>> vek(101)
2
>>> vek(100)
1
>>>



Офлайн

#10 Май 28, 2015 23:42:40

to_night
От: Киев
Зарегистрирован: 2013-12-12
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Как узнать век?

Немного оффтопик, но чтобы не изобретать велосипеды, советую ознакомится: Часто задаваемые вопросы о календарях @ Клаус Тондеринг

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version