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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值