机考处理键盘输入

处理一行键盘输入

  • 对于多元输入
n,k,m=map(int,input().split())
  • 方法一:

line=list(map(str,input().split()))#将输入转化成列表,以空格为分隔符
  • 方法二:
L=[] 
L.append(map(str,input().split()))#将输入存入列表
  • 方法三:将每行输入读取成矩阵的形式
读入一维矩阵
arr = input("")    #输入一个一维数组,每个数之间使空格隔开
num = [int(n) for n in arr.split()]    #将输入每个数以空格键隔开做成数组
print(num)        #打印数组

处理多行(矩阵)键盘输入

  • 读入二维矩阵适用于n*n矩阵
n = int(input())        #输入二维数组的行数和列数
m = [[0]*n]*n        #初始化二维数组
for i in range(n):
    m[i] = input().split(" ")       #输入二维数组,同行数字用空格分隔,不同行则用回车换行
    #m[i] = list(map(str,input().split(" ")))     输入二维数组,同行数字用空格分隔,不同行则用回车换行
print(m)            #打印二维数组
  • 读入二维矩阵适用于n*任意列矩阵,缺点是必须要知道有多少行的输入
n=int(input())
m=[]
for i in range(n):
    m.append(list(map(int,input().split(" "))))  
    #m.append(list(map(float,input().split(" "))))
print(m)     #输入二维数组,同行数字用空格分隔,不同行则用回车换行print(m)
#n=6时输出[[1, 2, 2, 2], [1, 2, 2, 2], [1, 2, 2, 2], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
print('请输入数据的行数N:')
N = int(input())
print('N=',N)
print('input 输入:')
list1 = [[int(x) for x in input().split()] for y in range(N)]
print(list1)

print('sys.stdin.readline() 输入:')
import sys
list2 = [[int(x) for x in sys.stdin.readline().split()] for y in range(N)]
print(list2)
  • 读取多行输入,不知道多少行,但肯定是以换行符结束,输出是一维列表形式
import sys
s = [];
for line in iter(input, ''):
    s.append(line.replace(',',''))
print(s)
#输出['1 1 1', '12 3 3 3 3 ', '1 23 1 3 1 ', '123 ', '123 ']

不指定行数 输入多行数据 返回二维list(最实用)

#不指定输入的行数,但是必须以最后下一行只输入空格或者什么都不输入为结束
import sys
try:
    mx = []
    while True:
        m = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if m == '':
            break
        m = list(m.split())
        mx.append(m)
    print(mx)
except:
    pass
import sys
try:
    mx = []
    while True:
        m = input().strip()
        # m = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if m == '':
            break
        m = list(m.split())
        mx.append(m)
    print(mx)
except:
    pass

读取矩阵的行数和列数

print(len(mx)) 读取列
print(len(mx[0]))读取行

不指定行数 但是每输入一行就处理一行 持续等待输入:

import sys
try:
    ssn = []
    while True:
        sn = input().strip()
        # sn = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if sn == '':
            break
        sn = list(sn.split())
        ssn.append(sn)
    print(ssn)
except:
    pass
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐