2010-10-20 26 views
9

उत्पादन मैं अपनी छोटी उदाहरण अनुप्रयोग के लिए हो रही है है निम्नलिखित:मैं एक स्ट्रिंग को पायथन में एक int में कैसे परिवर्तित कर सकता हूं?

Welcome to the Calculator! 
Please choose what you'd like to do: 
0: Addition 
1: Subtraction 
2: Multiplication 
3: Division 
4: Quit Application 
0 
Enter your first number: 1 
Enter your second number: 1 
Your result is: 
11 

इसका कारण यह है इसके अलावा() विधि तार और नहीं संख्या के रूप में इनपुट() ले जा रहा है। मैं उन्हें संख्याओं के रूप में कैसे उपयोग कर सकता हूं?

def addition(a, b): 
    return a + b 

def subtraction(a, b): 
    return a - b 

def multiplication(a, b): 
    return a * b 

def division(a, b): 
    return a/b 

keepProgramRunning = True 

print "Welcome to the Calculator!" 

while keepProgramRunning:  
    print "Please choose what you'd like to do:" 

    print "0: Addition" 
    print "1: Subtraction" 
    print "2: Multiplication" 
    print "3: Division" 
    print "4: Quit Application" 



    #Capture the menu choice. 
    choice = raw_input()  

    if choice == "0": 
     numberA = raw_input("Enter your first number: ") 
     numberB = raw_input("Enter your second number: ") 
     print "Your result is:" 
     print addition(numberA, numberB) 
    elif choice == "1": 
     numberA = raw_input("Enter your first number: ") 
     numberB = raw_input("Enter your second number: ") 
     print "Your result is:" 
     print subtraction(numberA, numberB) 
    elif choice == "2": 
     numberA = raw_input("Enter your first number: ") 
     numberB = raw_input("Enter your second number: ") 
     print "Your result is:" 
     print multiplication(numberA, numberB) 
    elif choice == "3": 
     numberA = raw_input("Enter your first number: ") 
     numberB = raw_input("Enter your second number: ") 
     print "Your result is:" 
     print division(numberA, numberB) 
    elif choice == "4": 
     print "Bye!" 
     keepProgramRunning = False 
    else: 
     print "Please choose a valid option." 
     print "\n" 
+0

मैं पहले से ही कहा गया है कि प्रणाली में दो बार प्रश्न पोस्ट, जाँच के बाद समय। वास्तव में मेरी गलती नहीं है और मैं सवाल को भी हटा नहीं सकता हूं। –

+0

आपके लिए 'करीबी' लिंक मौजूद नहीं है? –

+0

हालांकि यह तुरंत प्रश्न को बंद नहीं करता है। –

उत्तर

15

आप एक कैलकुलेटर है कि शायद यह भी तैरता स्वीकार करेंगे (1.5, 0.03) लिख रहे हैं के बाद से, एक

यहाँ मेरी पूरी स्क्रिप्ट है इस सरल सहायक समारोह का उपयोग करने के लिए और अधिक मजबूत तरीका होगा:

def convertStr(s): 
    """Convert string to either int or float.""" 
    try: 
     ret = int(s) 
    except ValueError: 
     #Try float. 
     ret = float(s) 
    return ret 

इस तरह यदि int रूपांतरण काम नहीं करता है, तो आपको एक फ्लोट वापस मिल जाएगा।

संपादित करें: यदि आप how python 2.x handles integer division के बारे में पूरी तरह से अवगत नहीं हैं तो आपके division फ़ंक्शन के कुछ दुखद चेहरे भी हो सकते हैं।

संक्षेप में, यदि आप 10/2 चाहते 2.5 बराबर करने के लिए और नहीं2, आप from __future__ import division करते हैं या डाली एक या तर्क के दोनों फ्लोट करने के लिए है, इसलिए की तरह करना होगा:

def division(a, b): 
    return float(a)/float(b) 
+0

अरे यह बहुत साफ है, धन्यवाद! –

+1

'convertStr = float', लगभग वही काम करता है। –

11
>>> a = "123" 
>>> int(a) 
123 

यहाँ कुछ freebie कोड है::

def getTwoNumbers(): 
    numberA = raw_input("Enter your first number: ") 
    numberB = raw_input("Enter your second number: ") 
    return int(numberA), int(numberB) 
+0

अधिक निर्मित कार्यों में: http://docs.python.org/library/functions.html –

0

शायद (untested)

def convert(str): 
    try: 
     base = 10 # default 
     if ':' in str: 
      sstr = str.split(':') 
      base, str = int(sstr[0]), sstr[1] 
     val = int(str, base) 
    except ValueError: 
     val = None 

    return val 

val = convert(raw_input("Enter value:")) 
# 10  : Decimal 
# 16:a : Hex, 10 
# 2:1010 : Binary, 10 
0

आसान: निम्नलिखित है, तो अपने कैलकुलेटर मनमाना संख्या आधार (! जैसे हेक्स, द्विआधारी, आधार 7 आदि) का उपयोग कर सकते हैं!

if option == str(1): 
     numberA = int(raw_input("enter first number. ")) 
     numberB= int(raw_input("enter second number. ")) 
     print " " 
     print addition(numberA, numberB) 
    etc etc etc 
0

डीईएफ़ अलावा (क, ख): ए + बी

डीईएफ़ घटाव वापसी (ए, बी): एक वापसी - ख

डीईएफ़ गुणा (ए, बी): एक * ख लौट

डीईएफ़ प्रभाग (ए, बी): a/b

keepProgramRunning = सच वापसी

प्रिंट "कैलकुलेटर में आपका स्वागत है!"

जबकि keepProgramRunning:
प्रिंट "कृपया चुनें कि आप क्या करना चाहते हैं:"

print "0: Addition" 
print "1: Subtraction" 
print "2: Multiplication" 
print "3: Division" 
print "4: Quit Application" 



#Capture the menu choice. 
choice = raw_input()  

if choice == "0": 
    numberA = input("Enter your first number: ") 
    numberB = input("Enter your second number: ") 
    print "Your result is: " + str(addition(numberA, numberB)) + "\n" 
elif choice == "1": 
    numberA = input("Enter your first number: ") 
    numberB = input("Enter your second number: ") 
    print "Your result is: " + str(subtraction(numberA, numberB)) + "\n" 
elif choice == "2": 
    numberA = input("Enter your first number: ") 
    numberB = input("Enter your second number: ") 
    print "Your result is: " + str(multiplication(numberA, numberB)) + "\n" 
elif choice == "3": 
    numberA = input("Enter your first number: ") 
    numberB = input("Enter your second number: ") 
    print "Your result is: " + str(division(numberA, numberB)) + "\n" 
elif choice == "4": 
    print "Bye!" 
    keepProgramRunning = False 
else: 
    print "Please choose a valid option." 
    print "\n" 
+0

थोड़ा सा स्पष्टीकरण के बारे में कैसे? – djv

-1
def addition(a, b): return a + b 

def subtraction(a, b): return a - b 

def multiplication(a, b): return a * b 

def division(a, b): return a/b 

keepProgramRunning = True 

print "Welcome to the Calculator!" 

while keepProgramRunning: 
print "Please choose what you'd like to do:" 
0

अपने मुख्य कार्य से अपने उप कार्यों बुला जब आप पूर्णांक में और फिर चर परिवर्तित कर सकते हैं कहते हैं।नीचे दिए गए कोड देखें:

import sys 

print("Welcome to Calculator\n") 
print("Please find the options:\n" + "1. Addition\n" + "2. Subtraction\n" + 
"3. Multiplication\n" + "4. Division\n" + "5. Exponential\n" + "6. Quit\n") 

def calculator(): 
    choice = input("Enter choice\n") 

    if int(choice) == 1: 
     a = input("Enter first number\n") 
     b = input("Enter second number\n") 
     add(int(a), int(b)) 

    if int(choice) == 2: 
     a = input("Enter first number\n") 
     b = input("Enter second number\n") 
     diff(int(a), int(b)) 

    if int(choice) == 3: 
     a = input("Enter first number\n") 
     b = input("Enter second number\n") 
     mult(int(a), int(b)) 

    if int(choice) == 4: 
     a = input("Enter first number\n") 
     b = input("Enter second number\n") 
     div(float(a), float(b)) 

    if int(choice) == 5: 
     a = input("Enter the base number\n") 
     b = input("Enter the exponential\n") 
     exp(int(a), int(b)) 

    if int(choice) == 6: 
     print("Bye") 
     sys.exit(0) 



def add(a, b): 
    c = a+b 
    print("Sum of {} and {} is {}".format(a, b, c)) 

def diff(a,b): 
    c = a-b 
    print("Difference between {} and {} is {}".format(a, b, c)) 

def mult(a, b): 
    c = a*b 
    print("The Product of {} and {} is {}".format(a, b, c)) 

def div(a, b): 
    c = a/b 
    print("The Quotient of {} and {} is {}".format(a, b, c)) 

def exp(a, b): 
    c = a**b 
    print("The result of {} to the power of {} is {}".format(a, b, c)) 

calculator() 

यहाँ मैं क्या किया पैरामीटर int करने के लिए इनपुट परिवर्तित जब मैं समारोह के प्रत्येक कहा जाता है। मुझे उम्मीद है कि यह मददगार रहा होगा।

आपके मामले में यह इस तरह बदला जा सकता है:

if choice == "0": 
     numberA = raw_input("Enter your first number: ") 
     numberB = raw_input("Enter your second number: ") 
     print "Your result is:" 
     print addition(int(numberA), int(numberB)) 
संबंधित मुद्दे

 संबंधित मुद्दे