inta=int(input("enter the first number"))
intb=input('enter + for addition, - for subtraction, * for product')
intc=int(input("enter your second number"))

while True:

    if intb == '+' :
        print(inta+intc)
        break
    if intb == '-' :
        print(inta-intc)
        break
    if intb == '*' :
        print(inta*intc)
        break
    else:
        print("error try again")

हैलो, मैं प्रोग्रामिंग के लिए नया हूँ और मुझे एक समस्या का पता चला है। मैं एक कैलकुलेटर का निर्माण कर रहा हूं और मैं लूप को चालू रखने के लिए एक और स्टेटमेंट का उपयोग करने की कोशिश कर रहा हूं, अगर उपयोगकर्ता कुछ ऐसा दर्ज करता है जो उन्हें नहीं करना चाहिए, हालांकि जब मैं ऐसा करता हूं, तो मुद्रित स्टेटमेंट लूपिंग पर रहता है, मैं इसे कैसे ठीक कर सकता हूं?

-2
khushi 29 पद 2021, 17:23
अपना इनपुट अपने लूप में डालें, अन्यथा यह पूरे लूप के दौरान उसी (पिछले) इनपुट का उपयोग करेगा। आप लूप से बाहर निकलने के लिए एक q या quit विकल्प भी जोड़ सकते हैं।
 – 
3DspatialUser
29 पद 2021, 17:26

7 जवाब

आपको intb वेरिएबल को उस चीज़ में संशोधित करना होगा जो उपयोगकर्ता द्वारा जबकि स्टेटमेंट में सही मान इनपुट करने की प्रतीक्षा करता है।

आप पहली पंक्तियों को एक फ़ंक्शन बना सकते हैं, और इसे वापस कॉल कर सकते हैं। यदि यह अन्य में प्रवेश करता है, तो यह आपके मामले में काम कर सकता है।

1
taylor.2317 1 जिंदा 2022, 18:51
w3schools.com/python/python_functions.asp अगर आप अजगर में नए हैं तो आप इसका इस्तेमाल कर सकते हैं बुनियादी समझ के आधार के रूप में यह वेबसाइट
 – 
SneaKoa
29 पद 2021, 17:29
अतिरिक्त सहायक जानकारी के साथ आपके उत्तर में सुधार किया जा सकता है। कृपया उद्धरण या दस्तावेज़ीकरण जैसे और विवरण जोड़ने के लिए संपादित करें, ताकि अन्य पुष्टि कर सकें कि आपका उत्तर सही है। आप सहायता केंद्र में अच्छे उत्तर लिखने के तरीके के बारे में अधिक जानकारी प्राप्त कर सकते हैं।
 – 
taylor.2317
29 पद 2021, 20:22

intb के वर्तमान मान को अस्वीकार करने के बाद आप उसका मान नहीं बदल रहे हैं। आपको कॉल को input अंदर लूप में दोहराना होगा।

inta=int(input("enter the first number"))
intb=input('enter + for addition, - for subtraction, * for product')
intc=int(input("enter your second number"))

while True:

    if intb == '+' :
        print(inta+intc)
        break
    if intb == '-' :
        print(inta-intc)
        break
    if intb == '*' :
        print(inta*intc)
        break
    else:
        print("error try again")
        tb=input('enter + for addition, - for subtraction, * for product')

आप शायद प्रत्येक इनपुट के लिए अलग-अलग लूप चाहते हैं, ताकि ऑपरेंड के लिए गैर-पूर्णांक इनपुट को समायोजित किया जा सके। एक बार inta, intb, और intc के मान मान्य होने के बाद, तब आप अनुरोधित कार्रवाई कर सकते हैं।

0
chepner 29 पद 2021, 17:25

आपको अपने चर को लूप के अंदर परिभाषित करना चाहिए। यह काम करना चाहिए -

inta=int(input("enter the first number"))
while True:
    intb=input('enter + for addition, - for subtraction, * for product')
    if intb == '+' :
        print(inta+intc)
        break
    if intb == '-' :
        print(inta-intc)
        break
    if intb == '*' :
        print(inta*intc)
        break
    else:
        print("error try again")
intc=int(input("enter the second number"))
0
sr0812 29 पद 2021, 17:28

मेरा सुझाव यहां अपवाद का उपयोग करके इसे संभालना है। इस तरह आप इनपुट को बाद में एक इंट में बदलने की कोशिश कर सकते हैं। यदि कोई त्रुटि होती है, तो कोड "कोशिश" शाखा से "छोड़कर" शाखा में चला जाता है।

यदि संचालन का तरीका मानों की स्वीकृत सूची में नहीं है, तो आप एक कस्टम अपवाद बना सकते हैं।

#Forever
while True:
    
    #Get inputs
    inta = input("enter the first number")
    intb = input("enter mode")
    intc = input("enter the second number")
    
    try:
        
        #Try to convert to ints
        inta = int(inta)
        intc = int(intc)
        
        #Check if valid mode in list
        if not intb in ["-","+","*"]:
            raise ValueError("Invalid mode input. Please try again.")
    
        #Perform operation
        if intb in ["-"]:
            print(inta-intc)
        elif intb in ["+"]:
            print(inta+intc)
        elif intb in ["*"]:
            print(inta*intc)
        
    #Handle exception
    except Exception as e:
        print(e)
        
0
JCodder 29 पद 2021, 17:31

while True: हमेशा सच रहेगा, यह सचमुच कभी भी सच नहीं हो सकता है, इसलिए यह हमेशा के लिए लूप हो जाएगा। आपको इनपुट मांगना है और इसे while लूप के भीतर सत्यापित करना है, फिर while लूप के बाहर गणना करना है।

उदाहरण के लिए,

inta=int(input("enter the first number"))

inputValid == False
while inputValid == False:
  intb=input('enter + for addition, - for subtraction, * for product')
  if intb == '+' or intb == '-' or intb == '*':
    inputValid = True
  else:
    print("error try again")

intc=int(input("enter your second number"))

#the rest of your code
if intb == '+' :
    print(inta+intc)
    break
if intb == '-' :
    print(inta-intc)
    break
if intb == '*' :
    print(inta*intc)
    break

यदि आप इसे लूप करना चाहते हैं और बार-बार गणना के लिए पूछते हैं तो आपको एक दूसरे while लूप की आवश्यकता होगी जिसमें आपका पूरा कोड हो।

0
yuuuu 29 पद 2021, 17:38

आपको क्या करना चाहिए लूप के अंदर इनपुट मांगना है। चूंकि आप नहीं चाहते कि कोड else स्थिति के भीतर लूप हो, इसलिए हर बार जब लूप पुनरारंभ होता है तो इनपुट मांगना वह हो सकता है जो आप करना चाहते हैं।

while True:
    inta=int(input("enter the first number"))
    intb=input('enter + for addition, - for subtraction, * for product')
    intc=int(input("enter your second number"))
    if intb == '+' :
        print(inta+intc)
        break
    elif intb == '-' :
        print(inta-intc)
        break
    elif intb == '*' :
        print(inta*intc)
        break
    else:
        print("error try again")

यह काम करना चाहिए। इसका उपयोग करते हुए, जब उपयोगकर्ता किसी ऐसी चीज में प्रवेश करता है जो किसी भी शर्त से मेल नहीं खाता है, तो यह एक बार error try again प्रिंट करेगा, और फिर वेरिएबल inta के लिए इनपुट मांगना शुरू कर देगा।

पी.एस. if का बार-बार उपयोग करने से दुभाषिया प्रत्येक स्थिति की जांच करेगा। elif का उपयोग करके, आप पहली मिलान वाली स्थिति की जांच कर सकते हैं। ऐसे मामले हैं जहां आपको if कथनों का उपयोग करने की आवश्यकता है, लेकिन इसके लिए elif का उपयोग करना बेहतर है। (पहला सशर्त बयान if होना चाहिए, जैसे इस में)

0
Suryanshsinh Sisodiya 29 पद 2021, 17:45

ऐसा लगता है कि आप सही रास्ते पर हैं। समस्या यह है कि आपका लूप उपयोगकर्ता को अपना चयन बदलने का मौका नहीं दे रहा है यदि उन्होंने कोई गलती की है। यदि आप अपना इनपुट कोड लूप में भी ले जाते हैं, तो इसे ठीक काम करना चाहिए।


while True:
    inta(input("enter the first number"))
    intb=input('enter + for addition, - for subtraction, * for product')
    intc=int(input("enter your second number"))

    if intb == '+' :
        print(inta+intc)
        break
    if intb == '-' :
        print(inta-intc)
        break
    if intb == '*' :
        print(inta*intc)
        break
    else:
        print("error try again")
0
Luke Nelson 29 पद 2021, 17:29