您的位置:首页 > 编程语言 > Python开发

oj中使用Python提交的常用技巧

2018-03-29 14:34 1666 查看
现在许多oj平台都开始支持Python提交了,相较于C++,Java语言解决ACM问题,Python由于其自身的丰富类库,可以使用很简单的代码解决上百行C语言代码解决的问题。当然,运行比较慢也是硬伤…各有所得吧,在一些在输入输出上,Python还是跟前者有很大的不同的:

单组输入

在python里输入都是用
input()
方法,对于单个的输入来说,这样直接的输入就是输入了一个字符串:

str = input()


如果输入多个字符串,则一般要使用
split()
函数:

str1, str2 = input().split(' ')     #输入两个字符串,使用空格分隔输入


如果需要输入整数之类的:

a = int(input())    #转化一下就好


如果输入的是数组,或者说是列表:

strlist = input().split(' ')   #得到的是字符串列表


如果获得的是一个整型数组,则稍微麻烦一点,同样的思路,输入的一整个字符串,分割成多个字符串,然后对它们进行int强制转化,然后放到一个list里就好,这里要对多个字符串执行相同的操作,因此可以使用 Python里常用的
map
,例如:

intlist = list(map(int, input().split(' ')))
# 第一步 temp1 = input().split(' ')
#第二步  map(int, temp1)   map(a , b)  这里的a表示的要进行的操作,可以是库函数也可以是自己定义的函数
#第三步  map返回的不是一个list,这里再使用list()转化一下就好了


多组输入

我们经常遇到的一种情况是 读取到文件末尾(EOF)结束,多组输入的情况,在Python中可以借助异常处理来解决,例如:

while True:
try:
a = input()
except EOFError:
break


这里就是最简单的多组输入了,就相当于c中 …!= EOF 了

输出的直接print了嘛,不过哟个问题就是Python中直接使用print 的话,是一个print 一个换行的,不让它自动换行的方法就是在print里添加控制的参数:

a = "hello "
b = "Python"
print(a, end = ' ')
print(b)


这样就是在一行输出了,当然还有另一个问题,就是经常要使用到格式输出,比如输出指定位数的小数还用用0来占位之类的,方法很多,用的比较到的是使用format来控制输出,也很方便,请看 :格式化输出

end~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python ACM