Найти - Пользователи
Полная версия: Как упростить?
Начало » Центр помощи » Как упростить?
1 2
Brick
Всем привет!
Нужно упростить, если такое возможно, данную программу.
Так же, если не очень трудно, объяснить было бы не плохо. Заранее спасибо!

#BbIbop mecRua no Homepy
months =
a = input(“Kakou mecRu uHmepecyem? ”)
if a < 1:
print “Hem makoro mecRua”
elif a == 1:
print (months)
elif a == 2:
print (months)
elif a == 3:
print (months)
elif a == 4:
print (months)
elif a == 5:
print (months)
elif a == 6:
print (months)
elif a == 7:
print (months)
elif a == 8:
print (months)
elif a == 9:
print (months)
elif a == 10:
print (months)
elif a == 11:
print (months)
elif a == 12:
print (months)
else:
print “Hem makoro mecRua”

marvellik
словарь упростит ваш код до трех строчек
PEHDOM
да вобщемто и без словаря можно упростить, хотя да, тут словарь проситься сам.
 #!/usr/bin/python
#BbIbop mecRua no Homepy
months = ['mms','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
a = input("Kakou mecRu uHmepecyem? ")
if 1 <= a <= 12:
    print months[a]
else:
	print "Hem makoro mecRua"
marvellik
поправочка
 a = int(input("Kakou mecRu uHmepecyem? "))
Brick
Спасибо, люди! Пытался сделать как во втором решении, но нет опыта совсем. А оказалось все просто. И за словари спасибо, хоть узнал про них Спасибо вам еще раз!
Brick
marvellik
поправочка
А в чем разница? и так работает. Только проверил.
PEHDOM
Brick
А в чем разница? и так работает. Только проверил.
а ты введи например 2.5 в первом и втором варианте, сам увидиш.
Brick
PEHDOM
Да. Вижу. Это, как я понимаю, чтение только целого от введеного значения или что-то около того.
А пробовал изначально я вот так:
 #!/usr/bin/python
#BbIbop mecRua no Homepy
months = ['mms','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
a = input("Kakou mecRu uHmepecyem? ")
print months[a]
но выдавалась ошибка. Я так и не понял из-за чего. Но сейчас и так работает, только нет ограничения в пределах (1,12)

marvellik
Brick
А в чем разница? и так работает
для питон 2.7 при вводе целых чисел будет работать а для 3 питона уже нет потому что input() получает строку а не число и сравннение if a < 1 с числом всегда будет False
Brick
Но сейчас и так работает, только нет ограничения в пределах (1,12)
и что ошибку индекса не выдает?
Brick
marvellik
Если вводить целые от 1 до 12, то ошибок не выдает. Python 2.7.12

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB