首先说明input()获得的结果都是字符串,需要自己将其转成字符型

1、一行输入

1.1 输入一个数/字符串

一行输入如果输入只有一个数或者一个字符串的话,直接使用input读取就可以了

s = input()
print(s)

1.2 输入一个数组

输入一个数组的话和输入一个数类似,只不过需要使用split()分解一下

s = input()
s = [i for i in s.split()]
print(s)

同一行输入两个数python python一行输入两个字符串_数据

2、两行输入

两行读取要在一行读取的基础上再进行一些操作。这里举个例子,假设第一行输入数组长度,第二行输入数组,那么读入操作分两步,首先获得数组长度,然后获取数组。

# 输入
4
1 2 3 4
# 代码
if __name__ == "__main__":
	n = int(input())
	num = [int(i) for i in input().split(' ')]
	print(n,num)
# 输出
4 [1,2,3,4]

3、多行输入

3.1 每行输入一个数/字符串

如果每行只输入一个数或者字符串的话这种情况直接使用while循环和input进行读取。

if __name__ == "__main__":
	while True:
	    s = input()
	    if s != "":
	        print(s)
	    else:
	        break

同一行输入两个数python python一行输入两个字符串_pycharm_02

3.2 每行读取不同的内容

有的时候题目要求每行内容输入不同,举个例子,第一行输入操作个数,从第二行还是输入n个数组。

重点以二维数组为例子

# 情况一:
# 输入:
# 3
# 1 2 3
# 4 5 6
# 7 8 9
# 输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
if __name__ == "__main__":
	n = int(input())
	arr = []
	for i in range(n):
		arr.append(list(map(int, input().rstrip().split())))
	print(arr)
# 情况二:
# 输入:
[[5,4], [6,3], [6,7], [6,6], [4,6]]
# 用eval函数即可。
lists = input()
print(eval(lists))

eval函数的用法

# 输入:这种比较怪异了其实。以防万一吧。
[
  ["1","1","1","1","0"],
  ["1","1","0","1","0"],
  ["1","1","0","0","0"],
  ["0","0","0","0","0"]
]
if __name__ == "__main__":
	m = 5  # 行
	n = 4  # 列
	res = ''   # 用res拼接为一行,最后再用eval转为list即可。
	for i in range(m+2):
		a = input().strip()
		res += a
	print(eval(res))

4、多组/多行 数据的输入

4.1 知道有多少组:

第一行输入一个整数T(1<=T<=10),表示数据组数。
每组数据占两行,第一行输入一个整数N(1<=N<=10^5);
第二行输入N个由空格隔开的整数,表示A[1]到A[N](-104<=A[i]<=104)。

1
4
3 -2 4 -1

输入的写法:

if __name__ == "__main__":
    T = int(input())
    while T > 0:
        T -= 1
        n = int(input())
        num = [int(i) for i in input().split(' ')]
        print(solution(n,num))

4.2 有多组数据,但不知道多少组

# 输入
4 5
while True:
	a,b=map(int,input().strip().split())
# 这里整理下sys.stdin.readline()、sys.stdin.readline().strip()和input的区别。
while True:

4.3 有多组输入数据,没有具体的告诉你有多少组,但是题目却告诉你遇见什么结束

while True:
	a,b=map(int,input().strip().split())
	if a==0 and b==0:
		break

4.4 输入有多组,且题目告诉你每组输入遇见什么结束,与第三种不同之处在于,每组输入都有相应的细化。

tcase = int(input().strip())
for case in range(tcase):
    a, b = map(int, input().strip().split())
    if a == 0 and b == 0:
        break

4.5 这次的输入实现输入一个整数,告诉我们有多少行,在输入每一行。对于每一行的输入,有划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。

tcase = int(input().strip())
for case in range(tcase):
    data = map(int, input().strip().split())
    n, array = data[0], data[1:]    
    sum = 0
    for i in range(n):
        sum += array[i]

5、输出

关于输出,尤其是浮点数的输出,一定要看下给的测试用例中输出了几位小数,如果输出精度不对,题目也是无法通过的

# 输出一位精度的float数
print("%.1f"%x)
# res=[1,2,3]格式的时候,转为标准输出格式 1 2 3
print(' '.join(str(item) for item in res))
# res=[1,2,3]格式的时候,转为标准输出格式
# 1
# 2
# 3
res = [1,2,3]
for i in res:
	print(' '.join(i))
# 当得到res为[[1,2,3],[4,5,6],[7,8,9]]格式的时候,通过下列方式转为标准输出格式。

# 输出为下列格式。
# 1 2 3
# 4 5 6
# 7 8 9
for i in range(len(res)):
	for j in range(len(res[i])):
		ress[i][j] = str(res[i][j])

for i in res:
	print(' '.join(i))