Number input recognition in python

后端 未结 2 632
北恋
北恋 2021-01-26 05:28

I\'m trying to make a script which asks a maths equation, then the user has to type in what they think answer is and then python would output the answer

However, for som

相关标签:
2条回答
  • 2021-01-26 05:47

    The object returned by raw_input() is a string. You need to convert it to an integer before performing arithmetic with it. You can do this with the int built-in function.

    print "What's 3+7"
    a = int(raw_input())
    print eval('a +4')
    

    EDIT:

    As ShadowRanger observes, using eval is redundant once a is an integer, so you can just let Python evaluate the result:

    print "What's 3+7"
    a = int(raw_input())
    print(a + 4)
    

    This is not only easier to read, but safer. Using eval on input received from a user is dangerous and should be avoided. A malicious user could enter something that, when evaluated, could cause data loss, or use up your computer's resources.

    0 讨论(0)
  • 2021-01-26 05:50

    try this

    print "What's 3+7"
    a = 5 # system store input as '5'
    print eval(a +' + 4') # now final string will be '4 + 5'
    
    • raw_input() always take input in raw/string format.
    • input() is similar to raw_input expect, this function accepts only numeric inputs.

    Few recommendation:

    • use input() for numeric inputs and raw_input() for asking name & other strings.
    • prefer not to hard code your numbers or use of number inside a string
    • eval is a wonderful function but I would not often use it. It need a seperate execution which can throw errors I can expect and other.
    0 讨论(0)
提交回复
热议问题