Форум сайта python.su
Ребята, помогите пожалуйста решить задачку для питона, дело в том что я гуманитарий и раньше вообще никогда не программировала, но по программе универа у нас есть информатика, где преподаватель решил кучу девченок-секретарш научить программировать в питоне, сложность в том, что я учусь не на родном языке(русском) и поэтому это еще больше осложняет дело, обычно я стараюсь сама делать все задания домашнего задания, но тут у меня полный застой, мне нужно решить следующее задание :
напишите программу, которая просит пользователя ввести : в первом случае нужно ввести время начала действия в формате “чч:мм”, например “23:15”. И во втором случае продолжительность действия в минутах (К). Программа должна найти во сколько действие завершится.
Например если время начала действия 12:30 и продолжительность 47 минут, то результат должен быть 13:17
Подсказка:
если введенное число часов (Т) и минут (М), тогда число минут, когда событие завершится должно быть (М+ К) % 60.
Для расчета часов, когда событие завершится, нужно использовать цельночисленное деление на 60 и деление остатка на 24.
Извените за корявый текст задания, это перевод с другого языка на русский.
я так понимаю, что нужно использовать функции def и if конструкциию. Вообщем помогите тупой девушке сдать информатику
вот что я намутила, дальше уже не знаю, что писать:
время = int(input(“Введите время, когда действие начнется в формате чч:мм :”))
продолжительность = int(input(“Введите продолжительность действия в минутах :”))
конец_действия = (время + продолжительность)
конец_действия_часы = конец_действия // 60
конец_действия_минуты = конец_действия % 60
конец = конец_действия_часы % 24
print ( )
Отредактировано meryer25 (Апрель 19, 2013 20:18:49)
Офлайн
Давай оригинальный текст. Ну если это не японский конечно.
Офлайн
оригинальный текст на эстонском, перевод дословный
Kirjuta programm, mis küsib kasutaja käest kaks sisendit: esimesel real mingi sündmuse alguse
kellaaja formaadis “tt:mm”, näiteks “23:15” või “08:35”, ja teisel real sündmuse kestvuse K minutites.
Programm peab leidma, mis kell sündmus lõppeb.
Näiteks algusaja 12:30 ja kestvuse 47 korral on õige tulemus 13:17 ning algusaja 23:59 ja 13 korral on
õige tulemus 00:12.
Vihje 1: sisestatud kellaajast tundide ja minutite leidmiseks kasuta sarnast konstruktsiooni, nagu
kasutasime tunnis sisestatud liitmistehte liidetavate leidmiseks.
Vihje 2: Kui sisestatud tundide arv on T ja minutid on M, siis lõppaja minutite arv peaks olema (M + K)
% 60. Lõppaja tundide arvutamiseks on vaja kasutada õigel viisil täisarvulist jagamist 60-ga ning
jäägiga jagamist 24-ga.
Отредактировано meryer25 (Апрель 19, 2013 20:22:24)
Офлайн
У тебя наверно венда?
Хз, как там в консоль вывести - попробуй это запустить.
# coding: utf8 hour, minute = raw_input(u"Введите время в формате чч:мм:".encode("cp866")).split(':') do = raw_input(u"Введите продолжительность операции в минутах:".encode("cp866")) result = int(hour)*60+int(minute)+int(do) print "%s:%s" % (result//60,result%60)[code]
Отредактировано Singularity (Апрель 19, 2013 20:55:52)
Офлайн
Извените за тупость, а что это обозначает: encode(“cp866”)).split(':') и откуда берется, если я так напишу, меня точно запалят, что я не сама делала и будет 0 за всю домашку.
Офлайн
Ну в windows вроде же кодировка консоли cp866. Так это костыль специально под windows что бы не латинские символы отображался в консоле. Кстати код выше нормально работает? Мне не на чем протестировать.
А str.split(':') делает из строки список строк деля их по разделителю ‘:’.
“dddd:jgwg:gmgj”.split(':') вернет список
Офлайн
при запуске программы в python shell результат не отображается почему- то.
Я пишу эту программу в python 2.7, может можно как -нибудь эту программу полегче написать, ну как для новичков
Отредактировано meryer25 (Апрель 19, 2013 21:35:54)
Офлайн
# coding: utf8 ''' получаем от пользователя время u"Введите время в формате чч:мм:".encode("cp866") чтобы текст в консоли отображался нормальной кириллицей, переводим юникод строку u'' в кодировку cp866 далее после того как пользователь введет 12:30 функция raw_input(...) вернет 12:30 как строку. т.е. '12:30' чтобы из неё получить hour и minute эту строку мы разбиваем на две строки, в качестве разделителя используем : (двоеточие) split(':') вернет нам в данном случае две строки: 12 и 30 которые мы и запишем hour и minute аналогично с продолжительностью ''' hour, minute = raw_input(u"Введите время в формате чч:мм:".encode("cp866")).split(':') do = raw_input(u"Введите продолжительность операции в минутах:".encode("cp866")) ''' далее для работы с числами необходимо строки hour, minute, do перевести в числа. используем функцию int, которая возвращает число а дальше чистая арифметика resuде - время в минутах ''' result = int(hour)*60+int(minute)+int(do) ''' оператор print выводит строку "%s:%s" но вместо первой %s она подставит значение result//60 - целое число от деления а вместо второй %s она подставит значение result%60 - остаток от деления ''' print "%s:%s" % (result//60,result%60)
Офлайн
ilnurdecode для декодирования из кодировки
encode
Офлайн
sp3. ну да.
а я что написал?
из юникода в кодировку cp866
Офлайн