Недавно я зарегистрировался на этом сайте, потому что я действительно застрял на задании, в котором мне требуется создать программу, в которой пользователь вводит месяц, и программа отображает, сколько дней в ней этот месяц. Пользователь также должен ввести год, чтобы программа могла проверить, является ли это високосным годом, если пользователь вводит месяц февраля.Справка по календарной программе (строковые переменные)
Это кодирование я придумал до сих пор:
def get_year():
year = raw_input("Please enter the year: ")
return year
def get_month():
month = raw_input("Please enter the month: ")
return month
def leap_year(year):
if year % 4 == 0:
return true
else:
return false
def get_days(month):
if month == "january":
print "31 days"
elif month == "february" and leap_year == true:
print "29 days"
else:
print "28 days"
if month == "march":
print "31 days"
elif month == "april":
print "30 days"
elif month == "may":
print "31 days"
elif month == "june":
print "30 days"
elif month == "july":
print "31 days"
elif month == "august":
print "31 days"
elif month == "september":
print "30 days"
elif month == "october":
print "31 days"
elif month == "november":
print "30 days"
elif month == "december":
print "31 days"
else:
print
def main():
user_year = get_year()
user_month = get_month()
leap_year(user_year)
get_days(user_month)
main()
В любом случае, ясно, что есть ошибка в моей get_days функционировать его только я не уверен , как писать код так что программа знает, что пользователь вводит месяц, например январь или марш. Я предполагаю, что вход должен быть переменной, и поскольку каждый месяц является строкой, требуется переменная строка. Но я мог быть совершенно неправ.
Я очень новичок в python (ровно 2 недели с тех пор, как программирование для школьной работы), поэтому я не слишком уверен в многих особенностях программирования на питоне, поэтому, если кто-нибудь может помочь мне в правильном направлении , Это будет высоко ценится!
Рассматривали ли вы с помощью питона [календарный модулем] (http://docs.python.org/library/calendar. html) из python [стандартной библиотеки] (http://docs.python.org/library/index.html)? – srgerg
Вы совсем близко. Несколько советов: 'get_days' должно принимать два аргумента, потому что вам нужен месяц _and_ год (для проверки на високосный год). Кроме того, 'leap_year' - это функция, поэтому вам нужно вызвать ее и передать ей аргумент. Кроме того, ваши высказывания 'if' немного неудобны. Оглянитесь назад, чтобы убедиться, что они делают то, что вы ожидаете. И, наконец, это должны быть «True» и «False», а не «true» и «false». – senderle
Кроме того, я не уверен, что ваш алгоритм определения високосного года является достаточно точным/полным. Из Википедии: «Годы, которые равномерно делятся на 100, не являются високосными годами, если они также не равномерно делятся на 400, и в этом случае они високосные годы» http://en.wikipedia.org/wiki/Leap_year – Levon