https://blog.csdn.net/bytxl/article/details/47301319
单行输入
1. 字符和数字混合
# input: {1, 2, 3} 23
s = raw_input()
此时s保存就是整个输入,之后就需要手动的去获得里面的数据了。
一般常用的处理字符串的操作(split,int,float等等)加上数组切片就可以了
2. 纯数字
# input 23.45 25
s = input()
多行输入(利用sys.stdin)
import sys
for line in sys.stdin:
print(line)
note:line是以字符串的形式来保存一行输入。
对于混杂的情况依然需要字符串处理以及切片等操作。不过对于很多情况,我们可以利用eval函数处理
eval(str):将字符串当成有效的表达式来求值并且返回计算结果。
just like:
# example1: input:{1, 2, 3, 4}
s = raw_input() # s = '{1, 2, 3, 4}'
d = eval(s) # d = {1, 2, 3, 4}
type(d) # set类型
# example2: input: 0xA
s = raw_input() # s = '0xA'
n = eval(s) # n = 10
hn = hex(n) # hn = '0xA'
利用eval(),可以很方便的将输入的字符串,转换成为对应的Python类型。另外,由于input函数其实就是调用了raw_input()后又用了eval函数处理了一下,所以对于上面的两个example,也可以写成
# 1. 输入:{1, 2, 3, 4}
d = input() # d = {1, 2, 3, 4}
type(d) # set类型
# 2.输入: 0xA
n = input() # n = 10
input 和 raw_input的关系就是:
raw_input接受返回的只是字符串,而input接受返回的是经过eval进行类型转换后的字符串值,当然,如果输入不能用eval函数处理的话,也会报错。
def input(prompt):
return eval(raw_input(prompt))
补充:
'''
求两个整数A+B的和
输入
输入包含多组数据。
每组数据包含两个整数A(1 ≤ A ≤ 100)和B(1 ≤ B ≤ 100)。
'''
while True:
try:
(n, m) = (int(x) for x in raw_input().split())
print(m+n)
except EOFError:
break