Author: LiChong0309
Label: ACM 、Python
1. The problem of “A+B+C”
1.1 Topic
输入为一行,包括了用空格分隔的三个整数 A、B、C(数据范围均在-4040 ~ 4040 之间)。输出为一行,为“A+B+C”的计算结果。
1.2 Sample input
22 1 3
1.3 Sample output
26
1.4 Code
lis = raw_input().split(' ')
sum = 0
for i in lis:
sum = sum + int(i)
print(sum)
(1)split()函数表示指定分隔符对字符串进行分片。
(2)raw_input()函数会将所有的输入看作字符串看待,返回字符类型。split()函数将字符串分片之后,所产生的列表还是字符串类型,所以要将分片后的字符串转换为int型才能进行运算。
1.5 raw_input() and input()
1.5.1 raw_input()
raw_input()函数将任何输入作为字符串类型看待,返回字符串类型。如下图所示,此时输入的不能看作是三个数字,而是一个包含数字和空格的字符串12_34_5。
再查看切片之后lis的数据类型,此时的lis为list类型
再查看lis中每个元素的类型,此时为str类型。
1.5.2 input()
我是将input()函数看作是raw_input()函数的升级版的,input()函数没有将所有的输入看作是字符串类型,而是包含了丰富的数据类型,比如int,float,string等等。当输入的是字符串类型的时候,要加上双引号。所以input()可以接受合法的python表达式,比如input(1 + 3),会返回一个int类型的4。
当输入字符串的时候没有带双引号的时候,会出现一个SyntaxError(语法错误)的错误。
2. Python2 、Python 3中的raw_input()和input()
对于python的开发者来说,他们的设计思想就是一个问题只用一种方法解决就好了,所以在python3中,python的开发者索性就把raw_input()函数舍去了。在python3中使用raw_input的话,会有一个错误:
name 'raw_input' is not defined
解决方法: 将raw_input该用为input即可。