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

PHPz
Lepaskan: 2024-07-31 06:39:22
asal
1280 orang telah melayarinya

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)
Salin selepas log masuk

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)

Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!