问题描述
我的小示例应用程序的输出如下:
The output I'm getting for my little example app is the following:
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
这是因为 add() 方法将 input() 作为字符串而不是数字.如何将它们用作数字?
This is because the addition() method is taking the input() as strings and not numbers. How can I use them as numbers?
这是我的整个脚本:
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 "
"
推荐答案
由于您正在编写一个可能也接受浮点数(1.5, 0.03
)的计算器,因此更可靠的方法是使用这个简单的辅助函数:
Since you're writing a calculator that would presumably also accept floats (1.5, 0.03
), a more robust way would be to use this simple helper function:
def convertStr(s):
"""Convert string to either int or float."""
try:
ret = int(s)
except ValueError:
#Try float.
ret = float(s)
return ret
这样,如果 int 转换不起作用,您将返回一个浮点数.
That way if the int conversion doesn't work, you'll get a float returned.
如果您不完全了解 python 2.x 如何处理整数除法.
简而言之,如果您希望 10/2
等于 2.5
而 不 2
,您将需要执行 from __future__ import division
或将一个或两个参数转换为 float,如下所示:
In short, if you want 10/2
to equal 2.5
and not 2
, you'll need to do from __future__ import division
or cast one or both of the arguments to float, like so:
def division(a, b):
return float(a) / float(b)
这篇关于如何在 Python 中将字符串转换为 int?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!