Python作为一种强大快捷的语言,近几年是越来越火,甚至逼近Java“老大哥”的地位。但是没有一种绝对完美的语言,Python也是有一些缺点的,比如:Python的input()是输入一行字符串,以“回车键”为结束标志。Python读入多行输入数字是没问题的,但是读入一行多个数字可能有些棘手。
话不多说,上题(选取SDUTACM oj上的题1147):
初学者在编写代码中,可能会写出一个for或者while循环,然后读入相应个数的数,然后就会报错,例如下面错误示范:
n = input(int())
i = 1
while i<=n:
x = input(int())
可能以为会将每一个数读入x然后,对每次读入的x进行操作,实际上这是错误的,上面已经提到,input()读入的是一行,也就是题目中的“-1‘ ’2‘ ’3‘ ’4‘ ’-5”,自然会报错,上交也会是wrong answer。
下面展示正确代码:
x=int(input())
a=[]
n=input().split(" ")
for i in range(0,x):
a.append(int(n[i]))
max = a[0]
maxx = abs(a[0])
for i in range(0,len(a)):
if abs(a[i]) > maxx :
max = a[i]
maxx = abs(a[i])
print(max)
可以看到关键读入方式:n=input().split(" ")在这里可以理解为,n是一个整数数组,他会将读入的字符串以“ ”作为分隔,然后存下以后续调用。及一反三,如果是读入以“,”为分割单位的,改为input().split(",")就可以了。