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

导读:本篇文章讲解 oj中使用Python提交的常用技巧,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

现在许多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~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116817.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!