"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que criar uma variável e usá-la como referência pode causar confusão?

Por que criar uma variável e usá-la como referência pode causar confusão?

Publicado em 01/08/2024
Navegar:985

Why creating a variable and using that variable as reference can lead to confusion?

Introdução

Em um script Python, eu queria testar diferentes strings HTML usando a mesma lógica. Minha abordagem foi percorrer um intervalo para criar várias instâncias das variáveis ​​​​de string HTML, mas não estava funcionando conforme o esperado.

# DO NOT DO THIS

for i in range(1, 5):
    html = f"html{i}"
    soup = BeautifulSoup(html, "html.parser")
    print('----', soup)

O comportamento que estava observando se deve à forma como a string formatada f"html{i}" é interpretada. No meu código, f"html{i}" avalia os literais "html1", "html2", "html3" e "html4" em vez do conteúdo das variáveis ​​chamadas html1, html2, etc.

Python não substitui automaticamente f"html{i}" pelo valor da variável cujo nome é criado dinamicamente, como html1 ou html2. Em vez disso, ele avalia a string como um padrão fixo composto pelo prefixo "html" seguido pelo valor de i.

Se eu quiser usar o conteúdo de variáveis ​​predefinidas html1, html2, etc., preciso recuperar explicitamente seus valores, por exemplo, usando um dicionário para mapear nomes de strings para seu conteúdo real.

Aqui está um exemplo que ilustra isso:

from bs4 import BeautifulSoup

# Define the variables
html1 = "Test 1"
html2 = "Test 2"
html3 = "Test 3"
html4 = "Test 4"

# Store them in a dictionary for easy access
html_dict = {
    "html1": html1,
    "html2": html2,
    "html3": html3,
    "html4": html4
}

# Iterate and process each html content
for i in range(1, 5):
    key = f"html{i}"
    html = html_dict[key]
    soup = BeautifulSoup(html, "html.parser")
    print('----', soup)

Explicação:

  1. Definir variáveis:

    • html1, html2, html3, html4 são definidos com o conteúdo que você deseja analisar.
  2. Dicionário para pesquisa de variáveis:

    • html_dict é criado para mapear os nomes das strings para seus conteúdos correspondentes.
  3. Iterar sobre chaves:

    • O loop gera as chaves "html1" a "html4".
    • key = f"html{i}" constrói a chave.
    • html = html_dict[key] recupera o conteúdo associado à chave.
  4. Analisar e imprimir:

    • Analisa o conteúdo HTML usando BeautifulSoup.
    • Imprime o conteúdo analisado.

Saída:

---- Test 1
---- Test 2
---- Test 3
---- Test 4

Essa abordagem acessa dinamicamente o conteúdo das variáveis ​​com base no índice de iteração e imprime corretamente o conteúdo pretendido.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/doridoro/why-creating-a-variable-and-using-that-variable-as-reference-can-lead-to-confusion-311i?1Se houver algum violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3