उपयोगकर्ता इनपुट "सर्कल 3.5" या "आयताकार 3 5" या "ट्रेपेज़ॉइड 3 5 7" (उपयोगकर्ता द्वारा तय की गई संख्या के लिए) और क्षेत्र को आउटपुट करता है। नीचे कोड है, लेकिन यह नहीं चल सकता।
s=input("Input the shape and number:")
# for example,
# s="rect:5 3"
# s="cir:3.5"
#s="trapz:3 5 7"
cmd, para=s.split(:)
print(f"{cmd}->{para}")
if cmd == 'cir':
r = float(para)
print(f"area={r*r*3.14}")
elif cmd == 'rect':
sw, sh = int(para.split())
print(f"area={sw*sh}")
elif cmd == 'trapz':
ul, bl, h = int(para.split())
print(f"area={(ul+bl)*h/2}")
else:
print("wrong input")
टिप्पणियों के लिए धन्यवाद। मैं इस प्रश्न को हल करने का दूसरा तरीका भी आजमाता हूं। कोड हैं:
s=input("Input the shape and number:").split()
if s[0]=="cir":
r = float(s[1])
print(f'area={r*r*math.pi}')
elif s[0]=="rect":
sw, sh = int(s[1]), int(s[2])
print(f"area={sw*sh}")
elif s[0]=="trapz":
ul, bl, h = int(s[1]), int(s[2]), int(s[3])
print(f'area={(ul+bl)*h/2}')
else:
print('Wrong input!')
5 जवाब
आपको अपने कोड के साथ कुछ समस्याएं हैं। उपयोगकर्ता द्वारा अपना इनपुट प्रदान करने के बाद आप s को मान निर्दिष्ट कर रहे हैं। मैं मान रहा हूं कि ये सिर्फ आपके अपने संदर्भ के लिए थे, इसलिए मैंने उन पर टिप्पणी की।
चूंकि s.split()
आपकी स्ट्रिंग को एक सूची में बदल देगा, इसलिए आपको यह सुनिश्चित करना होगा कि आप अपनी सूची के कुछ हिस्सों को सही संख्या में चरों को निर्दिष्ट कर रहे हैं। आप सीधे तीन तत्वों की सूची में दो चर निर्दिष्ट नहीं कर सकते। इसलिए मैंने सूची का पहला तत्व प्राप्त करने के लिए s.split(':')[0], s.split(':')[1:]
का उपयोग किया है, फिर उसी सूची के शेष तत्व।
इसके अलावा आप int()
को किसी सूची में लागू नहीं कर सकते क्योंकि पायथन आपके लिए इतना जादू नहीं करेगा, इसलिए आपको इसके बजाय एक सूची समझ का उपयोग करने की आवश्यकता है।
s=input("Input the shape and number:")
# s="rect:5:3"
# s="cir:3.5"
# s="trapz:3 5 7"
cmd, para=s.split(':')[0], s.split(':')[1:]
print(cmd,"->",para)
if cmd=='cir':
r = float(para[0])
print(f"arear={r*r*3.14}")
elif cmd=='rect':
sw, sh =[int(x) for x in para]
print(f"area={sw*sh}")
elif cmd=='trapz':
ul, bl, h = [int(x) for x in para]
print(f"area={(ul+bl)*h/2}")
else:
print("wrong input")
नमूना आउटपुट:
Input the shape and number:rect:5:3
rect -> ['5', '3']
area=15
Input the shape and number:cir:3.5
cir -> ['3.5']
arear=38.465
Input the shape and number:trapz:3:5:7
trapz -> ['3', '5', '7']
area=28.0
आप केवल int
को किसी सूची में लागू नहीं कर सकते
s=input("Input the shape and number:")
cmd, para=s.split(":")
print(cmd,"->",para)
if cmd=='cir':
r = float(para)
print(f"arear={r*r*3.14}")
elif cmd=='rect':
sw, sh = (float(x) for x in para.split())
print(f"area={sw*sh}")
elif cmd=='trapz':
ul, bl, h = (float(x) for x in para.split())
print(f"area={(ul+bl)*h/2}")
else:
print("wrong input")
आप इनपुट मांग रहे हैं और यहां 's' वेरिएबल के लिए अपना जवाब दे रहे हैं:
s=input("Input the shape and number:")
तो आप s वेरिएबल के मान को तीन बार अलग स्ट्रिंग में बदल रहे हैं।
s="rect:5:3"
s="cir:3.5"
s="trapz:3 5 7"
कोड की इस पंक्ति के बाद s वेरिएबल स्ट्रिंग के बराबर है: "ट्रैपज़: 3 5 7" चाहे उपयोगकर्ता कुछ भी दर्ज करे।
साथ ही, 'विभाजन' तर्क के रूप में प्रयुक्त कोलन एक स्ट्रिंग होना चाहिए।
प्रयत्न:
s=input("Input the shape and number:")
s = s.split(':')
cmd, para= s[0], s[1:] # <---- added this
print(cmd,"->",para)
if cmd=='cir':
r = float(para[0])
print(f"arear={r*r*3.14}")
elif cmd=='rect':
sw, sh =list(map(int, para)) #<---- added this
print(f"area={sw*sh}")
elif cmd=='trapz':
ul, bl, h = list(map(int, para))
print(f"area={(ul+bl)*h/2}")
else:
print("wrong input")
Input the shape and number:trapz:3:5:7
trapz -> ['3', '5', '7']
area=28.0
Input the shape and number:rect:3:5
rect -> ['3', '5']
area=15
Input the shape and number:cir:4.6
cir -> ['4.6']
arear=66.44239999999999
आपकी समस्या अनेक है। उदाहरण के लिए, आप कई मानों को int()
और float()
में पास करने का प्रयास कर रहे हैं, जो एकल मान लेते और वापस करते हैं। किसी सूची में int
लागू करने के लिए आप map
फ़ंक्शन का उपयोग कर सकते हैं अन्यथा यह नहीं चलेगा।
मेरा सुझाव है कि आप इस कोड को चलाने का प्रयास करते समय प्राप्त होने वाले त्रुटि संदेशों को देखें। जब आप पायथन सीखते हैं तो यह एक मूल्यवान अभ्यास है।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।