如何在Python中添加原始输入值?

-1 投票
2 回答
5458 浏览
提问于 2025-04-18 02:35

我正在尝试把两个输入的值加在一起。下面是我的代码:

def number_of_limbs(legs, arms, limbs):
    print "You have %s legs O.o" % legs
    print "You also have %s arms o.O" % arms
    print "You have %r limbs!! O.O" % limbs

legs = int(raw_input("How many legs do you have? "))
arms = int(raw_input("And how many arms do you have? ")
limbs = legs + arms

number_of_limbs(legs, arms, limbs)

这个程序应该问我有多少条腿,多少只手,然后把它们加在一起,最后告诉我总共有多少个肢体。我现在在学习《Python编程从入门到精通》的第19课,所以我在代码开头用到了“def”这个东西。我知道有更简单的方法可以做到同样的事情,但我想先理解这个特定的概念。

当我运行这个程序时,它告诉我我有2只手,2条腿,但总共却说我有22个肢体。我该怎么做才能让它把腿和手加起来,而不是把这两个数字并排显示呢?

现在它只是显示:

 File "ex1.py", line 8
    limb = legs + arms
       ^
SyntaxError: invalid syntax

2 个回答

4

把它们转换成整数:

legs = int(raw_input("How many legs do you have? "))
arms = int(raw_input("And how many arms do you have? "))

现在它们是字符串,这是从raw_input.得到的默认数据类型。

>>> example = raw_input()
2
>>> type(example)
<class 'str'>

当你把两个字符串加在一起(这里就是'2''2'),Python会把它们拼接成一个字符串。(所以结果就是'22'

>>> '2' + '2'
'22'

现在应该能得到正确的结果了。

这是修正版本的一个简单示例:

>>> legs = int(raw_input())
2
>>> arms = int(raw_input())
2
>>> limbs = legs + arms
>>> limbs
4

你现在可以毫无问题地把它传递给函数。

3

你需要把它们转换成整数(ints):

legs = int(raw_input("How many legs do you have? "))
arms = int(raw_input("And how many arms do you have? "))

示例

>>> number_of_limbs(legs, arms, limbs)
You have 2 legs O.o
You also have 2 arms o.O
You have 4 limbs!! O.O

这是因为你在进行字符串(strings)的加法。当你用 string+string 这种方式时,它只是把两个字符串拼接在一起。这是因为 raw_input 的默认类型是 str(字符串)。

>>> '2'+'2'
'22'
>>> int('2')+int('2')
4

撰写回答