Найти - Пользователи
Полная версия: помогите пожалуйста новичку в программировании с задачкой
Начало » Центр помощи » помогите пожалуйста новичку в программировании с задачкой
1 2
meryer25
Ребята, помогите пожалуйста решить задачку для питона, дело в том что я гуманитарий и раньше вообще никогда не программировала, но по программе универа у нас есть информатика, где преподаватель решил кучу девченок-секретарш научить программировать в питоне, сложность в том, что я учусь не на родном языке(русском) и поэтому это еще больше осложняет дело, обычно я стараюсь сама делать все задания домашнего задания, но тут у меня полный застой, мне нужно решить следующее задание :
напишите программу, которая просит пользователя ввести : в первом случае нужно ввести время начала действия в формате “чч:мм”, например “23:15”. И во втором случае продолжительность действия в минутах (К). Программа должна найти во сколько действие завершится.
Например если время начала действия 12:30 и продолжительность 47 минут, то результат должен быть 13:17
Подсказка:
если введенное число часов (Т) и минут (М), тогда число минут, когда событие завершится должно быть (М+ К) % 60.
Для расчета часов, когда событие завершится, нужно использовать цельночисленное деление на 60 и деление остатка на 24.

Извените за корявый текст задания, это перевод с другого языка на русский.
я так понимаю, что нужно использовать функции def и if конструкциию. Вообщем помогите тупой девушке сдать информатику
вот что я намутила, дальше уже не знаю, что писать:
время = int(input(“Введите время, когда действие начнется в формате чч:мм :”))


продолжительность = int(input(“Введите продолжительность действия в минутах :”))
конец_действия = (время + продолжительность)
конец_действия_часы = конец_действия // 60
конец_действия_минуты = конец_действия % 60

конец = конец_действия_часы % 24

print ( )
Singularity
Давай оригинальный текст. Ну если это не японский конечно.
meryer25
оригинальный текст на эстонском, перевод дословный
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.
Singularity
У тебя наверно венда?
Хз, как там в консоль вывести - попробуй это запустить.
# 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]
meryer25
Извените за тупость, а что это обозначает: encode(“cp866”)).split(':') и откуда берется, если я так напишу, меня точно запалят, что я не сама делала и будет 0 за всю домашку.
Singularity
Ну в windows вроде же кодировка консоли cp866. Так это костыль специально под windows что бы не латинские символы отображался в консоле. Кстати код выше нормально работает? Мне не на чем протестировать.

А str.split(':') делает из строки список строк деля их по разделителю ‘:’.
“dddd:jgwg:gmgj”.split(':') вернет список
meryer25
при запуске программы в python shell результат не отображается почему- то.
Я пишу эту программу в python 2.7, может можно как -нибудь эту программу полегче написать, ну как для новичков
ilnur
# 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)


если вы запустите скрипт в стандартной питоновской IDE, кириллицу вы не увидите. Чтобы увидеть кириллицу, необходимо убрать .encode('cp866')
sp3
ilnur
encode
decode для декодирования из кодировки
encode для кодирования в кодировку
ilnur
sp3. ну да.
а я что написал?
из юникода в кодировку cp866
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