python3输入输出练习-牛客网刷题
1. A+B(1)
题目
- 题目描述
计算a+b - 输入描述
输入包括两个正整数a,b(1<=a, b<=10^9),输入数据包括多组。 - 输出描述
输出a+b的结果
示例:
- 输入
1 5
10 20
- 输出
6
30
通过代码
代码1
while 1:
try:
a,b = map(int, input().split())
print(a+b)
except:
break
- map()函数
- 描述
map()函数会根据提供的函数对指定序列做映射。
第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。 - 语法
map(function,iterable,...)
function – 函数
iterable – 一个或多个序列
- split()函数
- 描述
split()通过指定分隔符对字符串进行切片,如果有第二个参数num有指定值,则分割为num+1个子字符串。返回列表? - 语法
str.split(str="", num=string.count(str))
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表位(\t)等。
num – 分割次数。默认为-1,即分割所有。
- 其他
- while 1相当于while true,此外,while 2, while “A” 等都是相同作用。
字符,数值都表示为真?? - 如果要赋值的变量数量不足,map()会如何运行,是否依然对参数序列中每一个元素调用函数。(猜测是)
代码2
import sys
for line in sys.stdin:
if line == '\n':break
a,b = (int(i) for i in line.split())
result = a + b
sys.stdout.write("{}\n".format(result))
- import语句
引入模块,import sys
引入python标准库中的sys.py模块 sys.stdin
-
sys.stdin
是一个标准化输入的方法。 -
使用
sys.stdin.readline()
可以实现标准输入,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换。 -
与input()区别
sys.stdin.readline()
会将标准输入全部获取,包括末尾的‘\n‘,因此用len
计算长度时是把换行符’\n‘计算进去的,而input()获取输入时返回的结果是不包含末尾的换行符’\n‘的。
此外,input()括号内可以直接填写说明文字,例如
n = int(input('Please input a number:\n'))
- for语句
- for循环可以便利任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>
<statements>
else:
<statements>
由此猜测
sys.stdin
可以理解为一个由字符串组成的列表,每一行的输入是其中的一个元素,即\n
分隔且构成元素??
4. a,b = (int(i) for i in line.split())
赋值语句括号内,声明变量i
是否可以不加外括号?变量i的适用范围?是否仅限于外括号?
猜测:外括号就是用于规定声明局部变量i适用范围
5. sys.stdout.write()
使用print(obj)
在console上打印对象的时候,实质上调用的是sys.stdout.write(obj+'\n')
,print在打印时会自动加个换行符.
sys.stdout.write('hello'+'\n')
print 'hello'
以上两行等价。
6. str.format
- 基本使用
括号及里面的字符(称作格式化字段)将会被format()中的参数替换。 - 括号中的数字用于指向传入对象在format()中的位置,例如:
>>>print('{0} 和 {1}'.format('python','c++'))
python 和 c++
>>>print('{1} 和 {0}'.format('python','c++'))
c++ 和 python
- 关键字参数,对象的值会指向使用该名字的参数,例如:
>>>print('{first}, {second}'.format(first='python',second='c++'))
python, c++
代码3
import sys
for a in sys.stdin:
b = a.split()
p