Python在线笔试琐碎
来源:互联网 发布:51模拟器官网mac 编辑:程序博客网 时间:2024/05/16 04:37
Python在线笔试琐碎
从开学来一直狂投简历,等了一个月不过收到两份在线笔试,连一次正式面试都没有,感觉快撑不下去了。这篇博客记录一下在线笔试用Python写算法题时需要注意的一些事项。
处理输入
一些大公司的在线笔试似乎都承包给了第三方,那个平台下的在线写代码功能真是不能再渣。它并不像LeetCode以及其他OJ一样给定函数声明和函数头部,而是需要你自己去处理输入。
首先,Python下的输入基本都为字符串,在单行输入模式下,对于有混杂数字,字符的情况下,我们可以用raw_input()函数来接受处理。
# 输入:{1, 2, 3},23s = raw_input()
此时s保存就是整个输入,之后就需要手动的去获得里面的数据了。一般常用的处理字符串的操作(如split
,int
,float
)加上数组切片就可以了。
对于单行输入是纯数字的话,可以使用input()函数来处理。input和raw_input的关系后面提到。
# 输入:23.45s = input()type(s) # float
如果是多行输入呢?比如题目要求多组同时输入,此时我们总不能写个循环使用raw_input函数吧。这时可以使用处理输入的sys.stdin。比如:
# 输入:12\n43\n...import sysfor line in sys.stdin: # 使用for处理多个输入 print(line)
这个时候,line是以字符串的形式保存的一行输入。对于混杂的情况依然需要字符串处理以及切片等操作。不过对于很多的情况,我们可以使用eval函数来处理。eval(str)的含义是将字符串str当成有效的表达式来求值并返回计算结果。比如:
# 例1,输入:{1, 2, 3, 4}s = raw_input() # s = '{1, 2, 3, 4}'d = eval(s) # d = {1, 2, 3, 4}type(d) # set类型# 例2,输入:0xAs = raw_input() # s = '0xA'n = eval(s) # n = 10hn = hex(n) # hn = '0xA'
利用eval,可以很方便的将输入的字符串,并转换为对应的Python类型。另外,由于input函数其实就是调用了raw_input后又用eval函数处理了一下,所以,对于上面两个例子,也可以写成:
# 例1,输入:{1, 2, 3, 4}d = input() # s = {1, 2, 3, 4}type(d) # set类型# 例2,输入:0xAn = input() # n = 10
input & raw_input
它两的关系如下:
def input(prompt): return eval(raw_input(prompt))
即raw_input接受返回的只是字符串,而input接受返回的是经过eval进行类型转换后的字符串值,当然,如果输入不能用eval函数处理的话,也会报错。
sys.stdin & input & raw_input
sys.stdin和后面两个都是获取输入的,不过后面两个一般只在处理单行输入时才使用。下面两个是等价的:
import sysline = sys.stdin.readline()[:-1] # sys.stdin会接受最后的`\n`,而raw_input不会
等价于:
line = raw_input()
使用sys.stdin.readlines()
时能够获取多行输入,在Windows下需要Ctrl+z来停止输入。
补充样例
题目来自hihoCoder上的A+B题。
描述
求两个整数A+B的和
输入
输入包含多组数据。
每组数据包含两个整数A(1 ≤ A ≤ 100)和B(1 ≤ B ≤ 100)。
输出
对于每组数据输出A+B的和。
代码:
while True: try: (n, m) = (int(x) for x in raw_input().split()) print(m + n) except EOFError: break
- Python在线笔试琐碎
- 在线笔试琐碎
- Python 在线笔试
- python在线笔试输入输出格式
- python 的琐碎事
- Python琐碎知识总结
- python numpy琐碎知识点
- 琐碎
- 琐碎
- 琐碎
- 琐碎
- 琐碎
- 琐碎
- 琐碎
- python中字符串的一些琐碎方法
- python琐碎的知识积累,闭包
- python统计学习相关琐碎知识点
- 笔试题10. 在线笔试
- Android自定义控件(四) 自定义ImageView动态设置ImageView的高度
- Mybatis 返回主键
- 利用shell脚本操作mysql数据库
- Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签
- 头文件的包含顺序
- Python在线笔试琐碎
- 类模板的定义及其使用
- Spring事务管理
- 简单就是美——由模式谈面向对象的基本原则之单一职责原则
- HDU Human Gene Functions
- Linux下环境变量的设置
- 1046 A^B Mod C
- HDU 寒冰王座
- HDU 最大报销额