अपने प्रोग्राम का उपयोग करने वाले व्यक्ति से इनपुट लेना
input() से उपयोगकर्ता द्वारा टाइप की गई बातें पढ़ना, यह हमेशा str क्यों होती है, और int() तथा float() से बदलते समय कौन सी त्रुटियाँ आती हैं।
- 1समस्या
- 2समझें
- 3उदाहरण
- 4अनुमान
- 5स्वयं करें
- 6चुनौती
वह समस्या जिसे हम हल कर रहे हैं
अब तक के सभी प्रोग्रामों में संख्याएँ और डेटा कोड के अंदर ही लिखे होते थे। अलग-अलग मानों के साथ चलाने के लिए फ़ाइल को खोलकर संपादित करना पड़ता था।
वास्तविक सॉफ़्टवेयर ऐसे काम नहीं करता। एक प्रोग्राम पूछता है, और उपयोगकर्ता उत्तर देता है।
पायथन में पूछने का काम input() का है। इसे सीखना आसान है, लेकिन इसका एक महत्वपूर्ण नियम है जो हर शुरुआती प्रोग्रामर को फंसाता है: input() हमेशा स्ट्रिंग (टेक्स्ट) ही लौटाता है — भले ही उपयोगकर्ता ने संख्या ही क्यों न टाइप की हो। इस एक नियम को न जानना आपके पहले गणना वाले प्रोग्राम को क्रैश करने के लिए काफी है।
इस मिशन के अंत तक आप सीखेंगे
input()द्वारा स्पष्ट प्रश्न दिखाकर उपयोगकर्ता से इनपुट लेना- यह समझना कि इनपुट हमेशा
strक्यों होता है int()औरfloat()से इनपुट को संख्या में बदलनाTypeErrorऔरValueErrorके बीच का अंतर समझना- इनपुट को साफ़ करना (
strip) ताकि अतिरिक्त स्पेस प्रोग्राम को न बिगाड़े
पूर्वापेक्षाएँ: टेक्स्ट के साथ काम — इंडेक्सिंग, स्लाइसिंग और f-strings.
input() कैसे काम करता है
name = input("What is your name? ")
print(f"Hello, {name}!")इसे चलाएँ:
What is your name? Rafi
Hello, Rafi!यहाँ तीन बातें हुईं: input() ने कोष्ठक के अंदर का प्रश्न दिखाया; फिर वह रुक गया और उपयोगकर्ता द्वारा टाइप करके Enter दबाने की प्रतीक्षा की; फिर उसने टाइप किया गया टेक्स्ट वापस कर दिया, जिसे हमने name में सहेज लिया।
ये प्रोग्राम टर्मिनल में चलने चाहिए।input()उपयोगकर्ता के टाइप करने की प्रतीक्षा करता है, इसलिए यह ऑनलाइन सैंडबॉक्स में ठीक से काम नहीं करता। अपने टर्मिनल मेंpython ask.pyचलाएँ।
एक संपूर्ण उदाहरण
bill.py:
# Ask for one order and print a small bill
print("--- Order entry ---")
customer = input("Customer name : ").strip().title()
item = input("Item : ").strip()
quantity = int(input("Quantity : "))
unit_price = float(input("Unit price : "))
subtotal = quantity * unit_price
tax = subtotal * 0.05
total = subtotal + tax
print()
print("--- Bill ---")
print(f"Customer : {customer}")
print(f"Item : {item} x {quantity}")
print(f"Subtotal : {subtotal:.2f}")
print(f"Tax (5%) : {tax:.2f}")
print(f"Total : {total:.2f}")--- Order entry ---
Customer name : rafi ahmed
Item : notebook
Quantity : 4
Unit price : 85.50
--- Bill ---
Customer : Rafi Ahmed
Item : notebook x 4
Subtotal : 342.00
Tax (5%) : 17.10
Total : 359.10चार इनपुट, चार अलग उपचार: नाम को साफ़ और कैपिटलाइज़ किया गया, आइटम को केवल साफ़ किया गया, मात्रा को पूर्णांक में बदला गया, और कीमत को दशमलव संख्या में बदला गया।
सामान्य गलतियाँ और समाधान
TypeError: can only concatenate str (not "int") to str रूपांतरण छूट गया है। int(input(...)) या float(input(...)) लिखें।
गुणा करने के बजाय टेक्स्ट दोहरा रहा है "3" * 2 का परिणाम "33" होता है। मान को int() में नहीं बदला गया था।
ValueError: invalid literal for int() with base 10 उपयोगकर्ता ने जो टाइप किया वह पूर्णांक नहीं है — कोई शब्द या दशमलव संख्या। यदि दशमलव संभव है, तो float() का उपयोग करें।
चरण 4 / 6 — अनुमान
अपनी समझ की जाँच करें
The person types 42 and presses Enter. What does the second line print?
value = input("Number: ")
print(type(value))- A<class 'str'>
- B<class 'int'>
- C<class 'float'>
- D<class 'input'>
The person typed 3 and the program printed Doubled: 33, with no error at all. Why, and what fixes it?
qty = input("Quantity: ")
print("Doubled:", qty * 2)- A`qty` is a `str`, and multiplying text by a number repeats it — it needs `int(qty) * 2`
- BThe `print` needs a `+` instead of a comma
- CWriting `qty + qty` instead of `qty * 2` would fix it
- D`input()` cannot read numbers, so a different function is needed
What happens if the person types 12.5?
count = int(input("Count: "))
print(count + 1)- AA `ValueError` — `int()` does not accept text with a decimal point; take it with `float()` if decimals are possible
- B`count` becomes `12`, because `int()` cuts off everything after the point
- C`count` becomes `13`, because `int()` rounds to the nearest whole number
- DA `TypeError`, because the input and the variable types do not match
उत्तर देने के लिए अकाउंट आवश्यक है
अपने उत्तर जाँचने के लिए साइन इन करें
प्रश्न ऊपर दिए गए हैं, और मन में उत्तर सोचना ही मुख्य कार्य है। सही उत्तर, व्याख्या और तीन-स्तरीय संकेत देखने के लिए साइन इन करें।
आपकी बारी
travel.py नाम से एक फ़ाइल लिखें जो चार प्रश्न पूछे और एक गणना दिखाए:
- यात्री का नाम (साफ़ और शीर्षक केस में)
- यात्रियों की संख्या (एक पूर्णांक)
- प्रति यात्री किराया (दशमलव संख्या)
- छूट प्रतिशत (दशमलव संख्या)
फिर कुल किराया, छूट राशि और देय अंतिम राशि दो दशमलव स्थानों तक प्रिंट करें।
There is more in this mission
What you read above is the complete mission — nothing was cut out of it. Pro adds:
- भीतर वास्तव में क्या होता है — पायथन इसे कैसे निष्पादित करता है
- अभ्यास का संपूर्ण समाधान, चरण-दर-चरण स्पष्टीकरण के साथ
- कठिन अतिरिक्त अभ्यास
- इस विषय पर साक्षात्कार में क्या पूछा जाता है और उसका आदर्श उत्तर
Step 6 of 6
चुनौती — the chapter quiz
सरल से कठिन — दस प्रश्न, अंतिम वाले जानबूझकर चुनौतीपूर्ण बनाए गए हैं।
Sign in to take the quiz