PythonPreran Ответов: 2

Запустив следующий код , не получив ни ошибки , ни результата, что я могу сделать ?


Я попробовал следующий код ниже . Он не показывает ни ошибки , ни результата , дважды проверен, перепроверен с видео YouTube, но он получает результат, а не я . Любые изменения , которые я могу сделать, чтобы устранить проблему, пожалуйста, ответьте . спасибо.

Что я уже пробовал:

import bs4 as bs
import pickle
import requests

def save_sp500_tickers():
    resp = requests.get( 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies' )
    soup = bs.BeautifulSoup(resp . text, "lxml")
    table = soup.find('table' , {'class' : 'wikitable sortable'})
    tickers  =  []
    for row in table.findAll('tr') [1:]:
        ticker = row.findAll('td') [0] . text
        tickers . append(ticker)

        with open("sp500tickers.pickle" , "wb")  as  f:
            pickle . dump(tickers, f)

            print(tickers)

            return tickers

2 Ответов

Рейтинг:
2

Patrice T

Проверьте отступ, в Python он является частью структуры программы.

Код найден в интернете: Учебники По Программированию На Python[^]

import bs4 as bs
import pickle
import requests

def save_sp500_tickers():
    resp = requests.get('http://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
    soup = bs.BeautifulSoup(resp.text, 'lxml')
    table = soup.find('table', {'class': 'wikitable sortable'})
    tickers = []
    for row in table.findAll('tr')[1:]:
        ticker = row.findAll('td')[0].text
        tickers.append(ticker)
        
    with open("sp500tickers.pickle","wb") as f:
        pickle.dump(tickers,f)
        
    return tickers

save_sp500_tickers()


PythonPreran

Все еще не работает , спасибо за ваш ответ ......

Patrice T

Покажите свой реальный код.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.

PythonPreran

это мой настоящий код

Patrice T

Показать фактический код, который не работает.

PythonPreran

Это код который не работает

Рейтинг:
0

OriginalGriff

Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании электронного письма: успешная компиляция означает, что вы написали электронное письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а он удваивает его и печатает ответ, то если ввод / вывод был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поместите точку останова в первую строку метода и запустите приложение. Когда он достигнет точки останова, отладчик остановится и передаст управление вам. Теперь вы можете запускать свой код построчно (так называемый "одноступенчатый") и просматривать (или даже изменять) содержимое переменных по мере необходимости (черт возьми, вы даже можете изменить код и повторить попытку, если вам это нужно).
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она действительно делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Надеюсь, это поможет вам определить, в какой части этого кода есть проблема и в чем она заключается.
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!


PythonPreran

Может быть, было бы лучше, если бы ты сказал, в чем проблема? Но хорошая теория большое вам спасибо

OriginalGriff

Нет, это не так, потому что я пытаюсь дать вам метод, чтобы решить эту проблему самостоятельно, сейчас и в будущем. Если вы овладеете навыком отладки, то сможете решить эту проблему и будущие проблемы (как вычислительные, так и реальные) быстро и легко. То, что я даю вам решение, ничему вас не учит, поэтому в следующий раз, когда ваш код не будет работать - и это будет в следующий раз, когда вы пишете код, это всегда происходит в начале - вы должны использовать инструменты, чтобы исправить его самостоятельно, а не ждать, пока другие сделают это за вас. И чем дальше вы углубляетесь в свой курс, тем сложнее становятся проблемы, и тем сложнее - и подвержены ошибкам - это делает ваш код.
Подумайте об этом: вы ждали целый день и не продвинулись еще дальше - если бы вы знали, как отлаживать, вы могли бы решить это сами давным-давно ...

Иногда "самый быстрый путь" - это "худший путь", и очень часто самый длинный путь в долгосрочной перспективе. Что вы будете делать, когда придет время экзамена и у вас не будет доступа к интернету, например?

PythonPreran

я учусь этому сам, а не для экзаменов, лол, я все еще 10-й класс, и я иду дальше, не останавливаясь, продолжайте учиться ...

OriginalGriff

Еще больше причин научиться исправлять его самостоятельно - это жизненно важный навык, который гораздо легче освоить в небольших приложениях, но может быть применен также и к 100 000 строкам кода приложений.

Серьезно, попробуйте - это действительно весело (и, вероятно, там вы проведете большую часть своей кодирующей жизни).

PythonPreran

ладно.....