Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2013 13:38:22

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

Решение задачи

Я ничего не понял.
Удачи.



Офлайн

#2 Апрель 5, 2013 15:40:26

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Решение задачи

Где у Вас вывод нумерации ячеек?
Самому в коде искать?
Вот допустим переменная data

[['Иванов', 585, 720], ['Петров', 600, 660], ['Сидоров', 720, 792]
и в ней каждый первый индекс это нумерация ячеек
выбрать самый первый элемент из первого индекса
или самый минимальный “выделяется свободная ячейка с минимальным номером”
for i in data:
    t=i[0]
    y=str(i[1])
    print (t,y[0],min(y))
y-первый элемент
min(y)-минимальный элемент из всего первого индекса(585,600,720)
3
10
Иванов 09:45 12:00
Сидоров 12:00 13:12
Петров 10:00 11:00
Иванов 5 5
Петров 6 0
Сидоров 7 0
[['Иванов', 585, 720], ['Петров', 600, 660], ['Сидоров', 720, 792]]

Отредактировано sanodin (Апрель 5, 2013 15:42:37)

Офлайн

#3 Апрель 5, 2013 19:13:54

sanya_rnd
Зарегистрирован: 2013-02-13
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение задачи

Sanodin, я немного не допонял код. Вывод не таким должен быть. Там же сказано: Сначала Фамилия, потом номер ячейки. Если свободных ячеек нет - пропуск. Номер ячейки определяется из сравнения времени, которое я и не могу сделать нормально.

Я как хотел сделать:

Получил data, в нем n подмассивов по 3 элемента.

Далее я сортировал
data = sorted(data, key=lambda elem: elem)
все элементы по времени сдачи.

А дальше мне нужно что-то типа:
i = 0
j = 0
if data>data:
print(data, j+1)
j = j+1

Но проблема в том, что нужно проверить и последующий элемент, т.е. пока не будет несовпадения. Я запутался в общем.

Офлайн

#4 Апрель 8, 2013 23:49:51

Stesh
Зарегистрирован: 2013-03-30
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение задачи

А для чего вы используете для получения данных словарь? Помоему, гораздо проще использовать список. В условии сказано, что все отсортировано уже по датам, сортировать нечего. Нужно лишь пробегать по списку и смотреть, время конца <= время начала. Я бы так решал:

n = int(raw_input())
k = int(raw_input())
l = []
for s in range(k): l.append(0)
ans = []
for i in range(n):
    family, beg, end = raw_input().split(' ')
    hour_beg, min_beg = beg.split(':')
    beg = int(hour_beg)*60 + int(min_beg)
    hour_end, min_end = end.split(':')
    end = int(hour_end)*60 + int(min_end)
    for j in range(k):
        if l[j] <= beg:
            l[j] = end
            ans.append([family, j+1])
            break
for family, i in ans:
    print family, i

Решение очень некрасивое, тут люди очень красиво пишут, но я еще пока не научился этому(сам недавно начал изучать Питон, началось все с парсинга блога).

Отредактировано Stesh (Апрель 8, 2013 23:50:48)

Офлайн

#5 Апрель 19, 2013 22:29:55

sanya_rnd
Зарегистрирован: 2013-02-13
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение задачи

string = list(input())
for elem in string:
    if elem.isalpha() or elem.isspace():
        string.remove(elem)
print(string)

дается строка с любыми символами. Нужно получить только числа. Код выше дает следущее:
sad 21 54 cfc2;1f v
['a', '2', '1', '5', '4', ' ', 'c', 'c', '2', ';', '1', ' ']

т.е. он удаляет, но как бы и не полностью. В чем проблема?

Офлайн

#6 Апрель 20, 2013 08:20:48

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

Решение задачи

sanya_rnd
т.е. он удаляет, но как бы и не полностью. В чем проблема?
Во-первых, ОДНА ЗАДАЧА == ОДНА ТЕМА.
Во-вторых, НЕЛЬЗЯ делать цикл по списку и из этого списка удалять.
Первая итерация, курсор списка стоит на индексе 0. Вы удаляете этот элемент. Соответственно второй элемент получает индекс 0, третий 1 и т.д.
Вторая итерация, курсор получает значение 1. А под индексом 1 у нас уже третий элемент изначальной последовательности, и второй не участвует в цикле.

Решение: используйте filter или list comprehension.

string = list(input())
string = [elem for elem in string if not elem.isalpha() and not elem.isspace() ]



Отредактировано FishHook (Апрель 20, 2013 08:21:49)

Офлайн

#7 Апрель 20, 2013 12:16:43

sanya_rnd
Зарегистрирован: 2013-02-13
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение задачи

FishHook
Во-первых, ОДНА ЗАДАЧА == ОДНА ТЕМА.
Ну вроде мелочь вопрос, не хочется форум засорять задачами однострочными. Учту, если так необходимо.

FishHook
Во-вторых, НЕЛЬЗЯ делать цикл по списку и из этого списка удалять.
Первая итерация, курсор списка стоит на индексе 0. Вы удаляете этот элемент. Соответственно второй элемент получает индекс 0, третий 1 и т.д.
Вторая итерация, курсор получает значение 1. А под индексом 1 у нас уже третий элемент изначальной последовательности, и второй не участвует в цикле


Спасибо за пояснение, именно это нужно было.

Офлайн

#8 Янв. 17, 2018 20:30:31

@SkillAndLuck@
Зарегистрирован: 2018-01-17
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение задачи

Мне нужно найти сколько секунд в сутках, неделе и году, но я не знаю как сделать эту задачу в python. Плиз хелп пипл!!!

Офлайн

#9 Янв. 18, 2018 04:25:21

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Решение задачи

 seconds_per_hour = 3600
hours_per_day = 24
days_per_week = 7
# the number of seconds in a day
seconds_per_day = seconds_per_hour * hours_per_day
# the number of seconds in a week
seconds_per_week = seconds_per_day * days_per_week
#The number of seconds in a year... Sorry, we need to know how many days are in a year?



Офлайн

#10 Янв. 18, 2018 11:08:06

IRIP
Зарегистрирован: 2012-03-29
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение задачи

@SkillAndLuck@
Мне нужно найти сколько секунд в сутках, неделе и году, но я не знаю как сделать эту задачу в python. Плиз хелп пипл!!!

а что в результате хотите получить? В каком формате вывод?

математически задача решается так:
секунд в минуте
минут в часе
часов в сутках
суток в неделе
недель в году (из расчета 365 суток)



================
Не бойтесь “не знать”. Бойтесь “не узнать”!
Не знание и желание узнать - кроют в себе большую силу ПОЗНАНИЯ.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version