如何在Python中添加原始输入值?
我正在尝试把两个输入的值加在一起。下面是我的代码:
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