Comment puis-je convertir une chaîne en un int en Python?
La sortie que je reçois pour mon petit exemple d'application est la suivante:
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
C'est parce que l'addition() la méthode est la prise de l'entrée() comme des chaînes de caractères et non des nombres. Comment puis-je les utiliser comme des nombres?
Voici mon script:
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"
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes en train de rédiger un calculateur qui serait sans doute aussi accepter de flotteurs (
1.5, 0.03
), d'une façon plus robuste serait d'utiliser cette simple fonction d'assistance:De cette façon, si l'int de conversion ne fonctionne pas, vous aurez un flotteur retourné.
Edit: Votre
division
fonction pourrait aussi entraîner certains visages tristes, si vous n'êtes pas pleinement conscient de comment python 2.x poignées de division entière.En bref, si vous voulez
10/2
à l'égalité des2.5
et pas2
vous aurez besoin de fairefrom __future__ import division
ou en fonte de l'une ou des deux arguments de flotter, comme suit:Voici quelques freebie code:
Peut-être le suivant, puis votre calculatrice peut utiliser nombre arbitraire de base (par exemple, hexadécimal, binaire, base de 7! etc): (non testé)
facile!
def plus(a, b):
de retour a + b
def soustraction(a, b):
de retour a - b
def de multiplication(a, b):
de retour a * b
def division(a, b):
de retour a /b
keepProgramRunning = True
print "Bienvenue dans la Calculatrice!"
tout keepProgramRunning:
print "Veuillez choisir ce que vous voulez faire:"
Tout en appelant votre sous-fonctions de vos principales fonctions vous pouvez convertir les variables de type int, et ensuite appeler. Veuillez consulter le code ci-dessous:
Ici ce que j'ai fait est que j'ai appelé chacun de la fonction lors de la conversion des paramètres d'entrée à l'int. J'espère que cela a été utile.
Dans votre cas, il pourrait être modifié comme ceci: