it-swarm.com.de

Wie kann ich in Python einen String in einen int konvertieren?

Die Ausgabe für meine kleine Beispiel-App lautet wie folgt:

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

Dies liegt daran, dass die Methode addition () die Methode input () als Zeichenfolge und nicht als Zahl verwendet. Wie kann ich sie als Zahlen verwenden?

Hier ist mein gesamtes Skript:

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"
10
delete

Da Sie einen Taschenrechner schreiben, der vermutlich auch Floats (1.5, 0.03) akzeptiert, ist die Verwendung dieser einfachen Hilfsfunktion eine robustere Methode:

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

Wenn die Int-Konvertierung nicht funktioniert, wird ein Float zurückgegeben.

Bearbeiten: Ihre division-Funktion kann auch zu traurigen Gesichtern führen, wenn Sie nicht ganz wissen, wie wie Python 2.x die Ganzzahl Division behandelt. 

Kurz gesagt, wenn Sie möchten, dass 10/2 gleich 2.5 und nicht 2 ist, müssen Sie from __future__ import division ausführen oder eines oder beide der Argumente umwandeln, wie dies zutrifft: 

def division(a, b):
    return float(a) / float(b)
15
Aphex
>>> a = "123"
>>> int(a)
123

Hier ist ein Freebie-Code:

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

Vielleicht das folgende, dann kann Ihr Rechner eine beliebige Basis (z. B. Hex, Binär, Basis 7! Usw.) verwenden: (nicht getestet)

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
Nick

einfach!

    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
Richard

def Addition (a, b): gibt a + b zurück

def subtraktion (a, b): Rückgabe a - b

def multiplikation (a, b): Rückgabe a * b

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

keepProgramRunning = True

print "Willkommen im Rechner!"

beim keepProgramRunning:
print "Bitte wählen Sie aus, was Sie gerne machen möchten:"

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
Munst

Während Sie Ihre Unterfunktionen von Ihren Hauptfunktionen aus aufrufen, können Sie die Variablen in int konvertieren und dann aufrufen. Bitte beziehen Sie sich auf den folgenden Code:

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()

Ich habe hier jede der Funktionen aufgerufen, während ich die eingegebenen Parameter in int konvertierte. Ich hoffe das war hilfreich.

In Ihrem Fall könnte es so geändert werden:

 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))
0
Chippy