Уведомления

Группа в Telegram: @pythonsu

#1 Июль 13, 2012 07:47:24

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Условие в массиве, как сравнить?

Есть массив:

time = ['0', '12:30', '15:45', '17:00', '17:00', '18:00', '19:00', '19:00', '19:00', '19:00', '19:30', '19:30', '19:30', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:30', '20:30', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:15', '21:30', '21:30', '21:30', '21:45', '22:00', '22:00', '22:00', '22:00', '22:05']

Условие, если больше 10, то.
Попытался сделать так:
for i in range(len(time)):
     if int(time[i]) > 10:
          try:
               print "Time is Now"
               break
          except ValueError:
               print "Time not come"
     else: print "Kill yourself"

Но, что-то вываливается у меня это всё в
ValueError: invalid literal for int() with base 10: ‘12:30’

Помогите новичку.

Офлайн

#2 Июль 13, 2012 08:05:39

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Условие в массиве, как сравнить?

Время или дата могут представляться множеством разных способов, поэтому питон не знает как преобразовать ваши строки во время. Используйте для преобразования http://docs.python.org/library/time.html#time.strptime



Офлайн

#3 Июль 13, 2012 08:08:36

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

Условие в массиве, как сравнить?

# -*- coding:utf-8 -*-
from datetime import datetime
tm = ['0', '09:00', '12:30', '15:45', '17:00', '17:00', '18:00', '19:00', '19:00', '19:00', '19:00', '19:30', '19:30', '19:30', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:30', '20:30', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:15', '21:30', '21:30', '21:30', '21:45', '22:00', '22:00', '22:00', '22:00', '22:05']
for t in tm:
  try:
    if datetime.strptime(t, '%H:%M').hour>10:
       print t, '>10'
    else:
       print t, '<=10'
  except ValueError:
    print t, 'Это не время, а херня какая-то'



Офлайн

#4 Июль 13, 2012 08:35:37

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Условие в массиве, как сравнить?

Спасибо, что помогаете.
Но 0 в первом индексе, это 0 минут, если заменить на 9. То именно интересует формат условия по этим критериям. Что поигрался с заменой hour на min, и изменением ‘%H:%M’ на ‘%M’, но ничего не вышло.

Офлайн

#5 Июль 13, 2012 08:35:37

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Условие в массиве, как сравнить?

Спасибо, что помогаете.
Но 0 в первом индексе, это 0 минут, если заменить на 9. То именно интересует формат условия по этим критериям. Что поигрался с заменой hour на min, и изменением ‘%H:%M’ на ‘%M’, но ничего не вышло.

Офлайн

#6 Июль 13, 2012 08:45:28

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Условие в массиве, как сравнить?

from datetime import datetime
tm = ['0', '9', '70', '15:45', '17:00', '17:00', '18:00', '19:00', '19:00', '19:00', '19:00', '19:30', '19:30', '19:30', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:30', '20:30', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:15', '21:30', '21:30', '21:30', '21:45', '22:00', '22:00', '22:00', '22:00', '22:05']
print datetime.strptime(tm)
for t in tm:
  try:
    if datetime.strptime(t, '%M').minute>10:
       print t, '>10'
    else:
       print t, '<=10'
  except ValueError:
    print t, 'Это не время, а херня какая-то'

Как пример, но что-то не то. Нужно, чтобы он 3-тий индекс вывел.

Отредактировано paraman (Июль 13, 2012 08:47:20)

Офлайн

#7 Июль 13, 2012 08:47:17

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

Условие в массиве, как сравнить?

paraman
Но 0 в первом индексе, это 0 минут, если заменить на 9.
Постарайтесь выражать свои мысли яснее, пожалуйста. Кажется, что Вы сами не знаете, что Вам нужно, по крайней мере мне не понятно, чего Вы хотите.
Откуда вообще берется этот список?



Офлайн

#8 Июль 13, 2012 08:50:00

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Условие в массиве, как сравнить?

Вроде подправил свою мысль

Офлайн

#9 Июль 13, 2012 09:01:19

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

Условие в массиве, как сравнить?

paraman
from datetime import datetime
tm = ['0', '9', '70', '15:45', '17:00', '17:00', '18:00', '19:00', '19:00', '19:00', '19:00', '19:30', '19:30', '19:30', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:00', '20:30', '20:30', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:00', '21:15', '21:30', '21:30', '21:30', '21:45', '22:00', '22:00', '22:00', '22:00', '22:05']
print datetime.strptime(tm)
for t in tm:
  try:
    if datetime.strptime(t, '%M').minute>10:
       print t, '>10'
    else:
       print t, '<=10'
  except ValueError:
    print t, 'Это не время, а херня какая-то'

Как пример, но что-то не то. Нужно, чтобы он 3-тий индекс вывел.
И что такое 70? Время по марсианским часам?



Офлайн

#10 Июль 13, 2012 09:04:32

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

Условие в массиве, как сравнить?

FishHook, может ему такое покатит

for h in time:
    if h.split(':')[0] > 22:
        print('Спать пора')
    else:
        print('Рано еще ...')



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version