Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah mencipta pembolehubah dan menggunakan pembolehubah itu sebagai rujukan boleh menyebabkan kekeliruan?

Mengapakah mencipta pembolehubah dan menggunakan pembolehubah itu sebagai rujukan boleh menyebabkan kekeliruan?

PHPz
PHPzasal
2024-07-31 06:39:221280semak imbas

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

pengenalan

Dalam skrip Python, saya ingin menguji rentetan HTML yang berbeza menggunakan logik yang sama. Pendekatan saya adalah untuk mengulangi julat untuk mencipta berbilang tika pembolehubah rentetan HTML, tetapi ia tidak berfungsi seperti yang diharapkan.

# DO NOT DO THIS

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

Tingkah laku yang saya perhatikan adalah disebabkan oleh cara rentetan terformat f"html{i}" ditafsirkan. Dalam kod saya, f"html{i}" menilai kepada literal "html1", "html2", "html3" dan "html4" berbanding kandungan pembolehubah bernama html1, html2, dsb.

Python tidak menggantikan f"html{i}" secara automatik dengan nilai pembolehubah yang namanya dicipta secara dinamik seperti html1 atau html2. Sebaliknya, ia menilai rentetan sebagai corak tetap yang terdiri daripada awalan "html" diikuti dengan nilai i.

Jika saya ingin menggunakan kandungan pembolehubah yang dipratakrifkan html1, html2, dsb., saya perlu mendapatkan semula nilainya secara eksplisit, contohnya menggunakan kamus untuk memetakan nama rentetan kepada kandungan sebenar mereka.

Berikut ialah contoh yang menggambarkan ini:

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)

Penjelasan:

  1. Tentukan Pembolehubah:

    • html1, html2, html3, html4 ditakrifkan dengan kandungan yang ingin anda huraikan.
  2. Kamus untuk Carian Boleh Ubah:

    • html_dict dicipta untuk memetakan nama rentetan kepada kandungan yang sepadan.
  3. Lelaran Pada Kekunci:

    • Gelung menjana kekunci "html1" kepada "html4".
    • key = f"html{i}" membina kunci.
    • html = html_dict[key] mendapatkan semula kandungan yang dikaitkan dengan kunci.
  4. Menghuraikan dan Mencetak:

    • Menghuraikan kandungan HTML menggunakan BeautifulSoup.
    • Mencetak kandungan yang dihuraikan.

Output:

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

Pendekatan ini secara dinamik mengakses kandungan pembolehubah berdasarkan indeks lelaran dan mencetak kandungan yang dimaksudkan dengan betul.

Atas ialah kandungan terperinci Mengapakah mencipta pembolehubah dan menggunakan pembolehubah itu sebagai rujukan boleh menyebabkan kekeliruan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn