Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 10, 2012 00:24:30

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Ну, во-первых вы не проверили, что keyword у вас в строке. А во вторых, num - это порядковый номер keyword в списке, то есть для ‘Участ’ это 0, для ‘Кажд’ - 1, и т.д. Напрягите мозг. Что добавить-то нужно в ty, если нашли в строке ‘Участ’? А если нашли ‘Кажд’?



Офлайн

#2 Июнь 10, 2012 00:27:03

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Dimazzzzzz
P.S. Поздравляю с 1000 и золотой полоской заранее :))))))
Спасибо. С таким трафиком, как мы с вами создали скоро еще 1000 будет :) Народ скоро ругаться начнет.



Офлайн

#3 Июнь 10, 2012 00:45:55

Dimazzzzzz
Зарегистрирован: 2012-05-06
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Ed
Dimazzzzzz
P.S. Поздравляю с 1000 и золотой полоской заранее )))))
Спасибо. С таким трафиком, как мы с вами создали скоро еще 1000 будет Народ скоро ругаться начнет.
Когда я напряг свой полуночный мозг получилось вот так, очевидно где-то ошибка, счас стараюсь ее найти
Черт, очевидно, что else не должен давать 0 сразу как не нашлось слово!(
Ed
Хорошо. Проблема с 0 решается просто - проинициализируйте ty нулями и все.
Если я правильно понял и вы предлагаете заполнить список ty нулями, то я не понимаю как это нужно использовать чтобы решить проблему
#-*- coding: cp1251 -*-
"""
Created on Tue Jun 05 19:35:11 2012
@author: Dimazzzzzz
"""
#/usr/bin/python
import urllib
import numpy as np
rasnost = []
Data =[]
Blitz1 = []
Stavka2 = []
Igrok2 = []
Typs = [[]] * 10
for J in xrange(803311466, 803311500):
 url='http://www.vezetmne.ru/auctions/'+str(J)
 urllib.urlretrieve(url=url, filename='COD.html')
 infile = open('COD.html')
 lines = infile.readlines()
 print J
 for i in range(len(lines)):
    line = lines[i]# так короче
    if 'cbid=alterStep' in line:
       rasnost.append(np.float(line.strip()[24:28]))
    if 'item_bigcell' in line:
        types = [lines[i+1].strip()[10:40], lines[i+2].strip()[10:40], lines[i+3].strip()[10:40], lines[i+4].strip()[10:40], lines[i+5].strip()[10:40]]
    if 'Аукцион завершен' in line:
        Data.append(line.strip()[-28:-19])
    if 'Блиц-цена' in line:
        Origin = line.strip()[91:97]
        if '.' in Origin:
            Orig = Origin[0:5]
        else:
            Orig = Origin
        if '.' in Orig:
            AA = Orig[0:4]
        else:
            AA = Orig
        if '.' in AA:
            BB = AA[0:3]
        else:
            BB = AA
        if '.' in BB:
            Blitz1.append(np.int(BB[0:2]))
        else:
            Blitz1.append(np.int(BB))
    if '<div class="history" id="history">' in line:
       Stavka1 = lines[i+3].strip()[21:50]# stavka.append(line.strip()[21:30])
       Stavka2.append(np.float(Stavka1[0:Stavka1.find('р')]))
       Igrok1 = lines[i+3].strip()[21:-24]  # А вот для ника возьмем с минусом
       Igrok2.append(Igrok1[Stavka1.find('р')+26:])
       ty = []
       keywords = ['Участ', 'Кажд', 'Лог', 'Днев', 'Один', 'Аукцион для', 'Ставок', 'Фикс', '100', 'Бесп']
       for q in range(len(types)):
           for num, keyword in enumerate(keywords):
               if 'keyword' in types[q]:
                   ty.append(num+1)
               else:
                   ty.append(0)
           #if 'Участ' in types[q]:
                 # Не требует свободных лотов (+)
           #elif 'Кажд' in types[q]:
               # ty.append(2) # Ограниченное количество ставок (+)
           #elif 'Лог' in types[q]:
               # ty.append(3) #'Логины зашифрованы'(+)
           #elif 'Днев' in types[q]:
               # ty.append(4) #'Дневной'(+)
           #elif 'Один' in types[q]:
               # ty.append(5) #'С блефом' (+) - Внезапно ОО
          # elif 'Аукцион для' in types[q]:
                #ty.append(6) #' Для новичков' (+)
          # elif 'Ставк' in types[q]:
              #  ty.append(7) #'На понижение'
          # elif 'Фикс' in types[q]:
               # ty.append(8) #'Фиксированная цена'
          # elif '100' in types[q]:
               # ty.append(9) #'100% скидка'
           #elif 'Бесп' in types[q]:
               # ty.append(10) #'Бесплатные ставки'
         # else:
           #  ty.append(0)
       for u in range(len(Typs)):     
           Typs[u].append(int(u+1 in ty))
print rasnost, '\n', Blitz1, '\n', Stavka2, '\n', Igrok2, '\n', Data
W = np.array(rasnost)
Blitz = np.array(Blitz1) 
Stavka = np.array(Stavka2)
Mtyp1 = np.array(Typs)

Отредактировано Dimazzzzzz (Июнь 10, 2012 01:08:13)

Офлайн

#4 Июнь 10, 2012 00:52:07

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Хорошо. Проблема с 0 решается просто - проинициализируйте ty нулями и все.



Офлайн

#5 Июнь 10, 2012 01:20:02

Dimazzzzzz
Зарегистрирован: 2012-05-06
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Ed
Хорошо. Проблема с 0 решается просто - проинициализируйте ty нулями и все.
Если я правильно понял и вы предлагаете заполнить список ty нулями, то я не понимаю как это нужно использовать чтобы решить проблему.
И насчет Списка Typs: есть какой-то способ его привести в удобный для работы вид?

Офлайн

#6 Июнь 10, 2012 01:25:50

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Заполнить так:

ty = [0] * len(keywords)
и это поможет избавиться от ветки else, с которой у вас были проблемы. Ну и .append в этом случае не нужен будет.

Ну, если желание еще осталось, излагайте каким образом вы это дальше собираетесь использовать. От этого зависит и то, что мы будем делать с Typs.



Офлайн

#7 Июнь 10, 2012 01:35:57

Dimazzzzzz
Зарегистрирован: 2012-05-06
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Ed
Заполнить так:
ty = [0] * len(keywords)
и это поможет избавиться от ветки else, с которой у вас были проблемы. Ну и .append в этом случае не нужен будет.

Ну, если желание еще осталось, излагайте каким образом вы это дальше собираетесь использовать. От этого зависит и то, что мы будем делать с Typs.
Желание есть всегда, но сил в 2:35 уже не остается, я даже не могу понять идеи с нулями
Спасибо вам огромное за помощь, я надеюсь затвра смогу спросить про Typs
Спокойной ночи

Офлайн

#8 Июнь 10, 2012 02:04:08

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Не, ну это медаль как минимум. Обоим.



Офлайн

#9 Июнь 10, 2012 05:04:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

с первой страницы совет

Ed
Вместо этого попользуем один двумерный, вот такой:
Typs = [[]] * 10
>>> lsts = [[]] * 10
>>> lsts
[[], [], [], [], [], [], [], [], [], []]
>>> lsts[0].append(1)
>>> lsts
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
>>>

заменить
>>> lsts = [[] for _ in range(10)]
>>> lsts
[[], [], [], [], [], [], [], [], [], []]
>>> lsts[0].append(1)
>>> lsts
[[1], [], [], [], [], [], [], [], [], []]
>>>


Ed
Да, совершено верно. Нужно u+1. Откуда тогда верные данные?
код настолько запутан, что он его даже проверить не может, потому что даже не помнит, что пытается сделать

Dimazzzzzz
1. Переменная Typs, например, получается вот такая:
[[0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]]
это всё один и тот же список, повторяющийся десять раз



Отредактировано py.user.next (Июнь 10, 2012 05:24:32)

Офлайн

#10 Июнь 10, 2012 09:41:58

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Простой вопрос(заклинило, не могу понять проблему)

Угу, учтем, спасибо. У меня цель была как раз научить человека пользоваться нормальными питоновыми конструкциями, распутывая этот код. Видно, что человек книжки читал, просто навыков программирования нет. Их не все могут из книг почерпнуть.

Думаю здесь продолжать вряд ли стоит, и так тут нагенерили 5 страниц. Приватно добьем, а сюда результат положим. Ну, если таковой будет, конечно :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version