我怎样才能在Python中将string转换为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
这是因为addition()方法将input()作为string而不是数字。 我怎样才能将它们用作数字?
这是我的整个脚本:
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"
既然你正在写计算器,大概也会接受浮点数( 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转换不起作用,你会得到一个返回的浮点数。
编辑:如果你不完全知道python 2.x如何处理整数除法,你的division
函数也可能导致一些悲伤的面孔。
简而言之,如果你想让10/2
等于2.5
而不是 2
,那么你需要from __future__ import division
或者将其中的一个或两个参数都转换为floattypes,如下所示:
def division(a, b): return float(a) / float(b)
>>> a = "123" >>> int(a) 123
这里有一些免费的代码:
def getTwoNumbers(): numberA = raw_input("Enter your first number: ") numberB = raw_input("Enter your second number: ") return int(numberA), int(numberB)
也许以下,那么你的计算器可以使用任意数字基(如hex,二进制,基地7!等):(未经testing)
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
简单!
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
def除(a,b):返回a + b
def减法(a,b):返回a – b
def乘法(a,b):返回a * b
(a,b):返回a / b
keepProgramRunning = True
打印“欢迎使用计算器!”
while keepProgramRunning:
打印“请select你想要做的:”
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"
从主函数调用子函数时,可以将variables转换为int然后调用。 请参考下面的代码:
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 = ab 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()
在这里,我所做的是将所有input参数转换为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))
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:"