"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > एक वेरिएबल बनाने और उस वेरिएबल को संदर्भ के रूप में उपयोग करने से भ्रम क्यों हो सकता है?

एक वेरिएबल बनाने और उस वेरिएबल को संदर्भ के रूप में उपयोग करने से भ्रम क्यों हो सकता है?

2024-08-01 को प्रकाशित
ब्राउज़ करें:868

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

परिचय

पायथन स्क्रिप्ट में, मैं एक ही तर्क का उपयोग करके विभिन्न HTML स्ट्रिंग्स का परीक्षण करना चाहता था। मेरा दृष्टिकोण HTML स्ट्रिंग वेरिएबल्स के कई उदाहरण बनाने के लिए एक सीमा के माध्यम से लूप करना था, लेकिन यह अपेक्षा के अनुरूप काम नहीं कर रहा था।

# DO NOT DO THIS

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

जो व्यवहार मैं देख रहा था वह स्वरूपित स्ट्रिंग f"html{i}" की व्याख्या के तरीके के कारण है। मेरे कोड में, f"html{i}" का मूल्यांकन html1, html2, आदि नामक वेरिएबल्स की सामग्री के बजाय शाब्दिक रूप से "html1", "html2", "html3" और "html4" के आधार पर किया जाता है।

पायथन स्वचालित रूप से f"html{i}" को उस वेरिएबल के मान से प्रतिस्थापित नहीं करता है जिसका नाम गतिशील रूप से बनाया गया है जैसे html1 या html2। इसके बजाय, यह स्ट्रिंग का मूल्यांकन एक निश्चित पैटर्न के रूप में करता है जिसमें उपसर्ग "html" और उसके बाद i का मान शामिल होता है।

यदि मैं पूर्व-परिभाषित चर HTML1, html2, आदि की सामग्री का उपयोग करना चाहता हूं, तो मुझे उनके मूल्यों को स्पष्ट रूप से पुनर्प्राप्त करने की आवश्यकता है, उदाहरण के लिए स्ट्रिंग नामों को उनकी वास्तविक सामग्री में मैप करने के लिए एक शब्दकोश का उपयोग करना।

इसे दर्शाने वाला एक उदाहरण यहां दिया गया है:

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)

स्पष्टीकरण:

  1. चर को परिभाषित करें:

    • html1, html2, html3, html4 को उस सामग्री से परिभाषित किया गया है जिसे आप पार्स करना चाहते हैं।
  2. वैरिएबल लुकअप के लिए शब्दकोश:

    • html_dict स्ट्रिंग नामों को उनकी संबंधित सामग्री में मैप करने के लिए बनाया गया है।
  3. कुंजियों पर पुनरावृति:

    • लूप "html1" से "html4" कुंजी उत्पन्न करता है।
    • key = f"html{i}" कुंजी का निर्माण करता है।
    • html = html_dict[key] कुंजी से जुड़ी सामग्री को पुनः प्राप्त करता है।
  4. पार्स और प्रिंट:

    • BeautifulSoup का उपयोग करके HTML सामग्री को पार्स करता है।
    • पार्स की गई सामग्री को प्रिंट करता है।

आउटपुट:

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

यह दृष्टिकोण पुनरावृत्ति सूचकांक के आधार पर चर की सामग्री को गतिशील रूप से एक्सेस करता है और इच्छित सामग्री को सही ढंग से प्रिंट करता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/doridoro/why-creating-a-variable-and-using-that-variable-as-reference-can-lead-to-confection-311i?1यदि कोई है उल्लंघन, हटाने के लिए कृपया [email protected] से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3