12
votes

Comment puis-je convertir une chaîne en int dans Python?

La sortie que je reçois pour mon petit exemple d'application est la suivante:

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"


4 commentaires

J'ai déjà indiqué que le système postait la question deux fois, vérifiez la publication. Pas vraiment ma faute et je ne peux pas supprimer la question non plus.


Le lien fermeture n'est pas présent pour vous?


Cela ne ferme pas immédiatement la question cependant.


Dupliqué possible de Python - Paysez la chaîne à flotteur ou int


8 Réponses :


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

0 commentaires

19
votes

Puisque vous écrivez une calculatrice qui accepterait probablement des flotteurs ( 1.5, 0,03 ), une manière plus robuste serait d'utiliser cette fonction d'assistance simple: xxx

De cette façon si la conversion int ne fonctionne pas, vous obtiendrez un flotteur retourné.

EDIT: Votre Division peut également entraîner des visages tristes si vous ne sont pas pleinement conscients de Comment python 2.x gère la division entière .

en bref, si vous voulez 10/2 à égal 2.5 et pas 2 , vous devrez faire de __future__ division importation ou lancer un ou les deux arguments à flotteur, comme: xxx


0 commentaires

0
votes

Peut-être que ce qui suit, alors votre calculatrice peut utiliser une base de numéro arbitraire (par exemple hexagonale, binaire, base 7! etc): (non testée) xxx


0 commentaires

0
votes

facile!

    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 commentaires

0
votes

DEF Ajouter (A, B): Retour A + B

DEF Soustraction (A, B): Retour A - B

Multiplication def (A, B): Renvoyez A * B

Division def (A, B): Retour A / B

KeepProgramRunning = true

Imprimer "Bienvenue dans la calculatrice!"

tandis que gardien:
Imprimer "Veuillez choisir ce que tu aimerais faire:" xxx


1 commentaires

Que diriez-vous d'une petite explication?



-1
votes
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 commentaires

1
votes

Lorsque vous appelez votre sous-fonction de vos fonctions principales, vous pouvez convertir les variables en Int, puis appelez. Veuillez vous reporter au code ci-dessous: xxx

ici ce que j'ai fait est que j'ai appelé chacune de la fonction lors de la conversion des paramètres entrés en Int. J'espère que cela a été utile.

Dans votre cas, il pourrait être changé comme ceci: xxx


0 commentaires

0
votes

N'utilisez pas la méthode Str () directement dans HTML à la place, utilisez-la avec y = x | chaîne () xxx


0 commentaires