如何在Python中将字符串转换为int?

11 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
Run Code Online (Sandbox Code Playgroud)

这是因为addition()方法将input()作为字符串而不是数字.我如何将它们用作数字?

这是我的整个脚本:

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"
Run Code Online (Sandbox Code Playgroud)

Aph*_*hex 17

既然你正在编写一个可能也接受浮点数(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
Run Code Online (Sandbox Code Playgroud)

这样,如果int转换不起作用,你将得到一个float返回.

编辑:division如果你不完全了解python 2.x如何处理整数除法,你的函数也可能会导致一些悲伤的面孔.

简而言之,如果你想要10/2相等2.5不是 2,你需要做from __future__ import division一个或两个参数浮动,如下:

def division(a, b):
    return float(a) / float(b)
Run Code Online (Sandbox Code Playgroud)


hug*_*own 11

>>> a = "123"
>>> int(a)
123
Run Code Online (Sandbox Code Playgroud)

这是一些免费代码:

def getTwoNumbers():
    numberA = raw_input("Enter your first number: ")
    numberB = raw_input("Enter your second number: ")
    return int(numberA), int(numberB)
Run Code Online (Sandbox Code Playgroud)