Найти - Пользователи
Полная версия: Простой вопрос(заклинило, не могу понять проблему)
Начало » Python для новичков » Простой вопрос(заклинило, не могу понять проблему)
1 2 3 4 5 6
Ed
Ну, во-первых вы не проверили, что keyword у вас в строке. А во вторых, num - это порядковый номер keyword в списке, то есть для ‘Участ’ это 0, для ‘Кажд’ - 1, и т.д. Напрягите мозг. Что добавить-то нужно в ty, если нашли в строке ‘Участ’? А если нашли ‘Кажд’?
Ed
Dimazzzzzz
P.S. Поздравляю с 1000 и золотой полоской заранее :))))))
Спасибо. С таким трафиком, как мы с вами создали скоро еще 1000 будет :) Народ скоро ругаться начнет.
Dimazzzzzz
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)
Ed
Хорошо. Проблема с 0 решается просто - проинициализируйте ty нулями и все.
Dimazzzzzz
Ed
Хорошо. Проблема с 0 решается просто - проинициализируйте ty нулями и все.
Если я правильно понял и вы предлагаете заполнить список ty нулями, то я не понимаю как это нужно использовать чтобы решить проблему.
И насчет Списка Typs: есть какой-то способ его привести в удобный для работы вид?
Ed
Заполнить так:
ty = [0] * len(keywords)
и это поможет избавиться от ветки else, с которой у вас были проблемы. Ну и .append в этом случае не нужен будет.

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

Ну, если желание еще осталось, излагайте каким образом вы это дальше собираетесь использовать. От этого зависит и то, что мы будем делать с Typs.
Желание есть всегда, но сил в 2:35 уже не остается, я даже не могу понять идеи с нулями
Спасибо вам огромное за помощь, я надеюсь затвра смогу спросить про Typs
Спокойной ночи
fata1ex
Не, ну это медаль как минимум. Обоим.
py.user.next
с первой страницы совет
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]]
это всё один и тот же список, повторяющийся десять раз
Ed
Угу, учтем, спасибо. У меня цель была как раз научить человека пользоваться нормальными питоновыми конструкциями, распутывая этот код. Видно, что человек книжки читал, просто навыков программирования нет. Их не все могут из книг почерпнуть.

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