①:输入一行数据并输
出两种方法
# 输入一行数据并输出
import sys
# 方法一:
str1 = input()
print('input 输入:',str1,'len=',len(str1))
print('循环遍历输入得到输入的每个字符的ascii码如下:')
for i in str1:
print(ord(i))
# 方法二:
str2 = sys.stdin.readline()
print('sys.stdin().readline() 输入:',str2,'len=',len(str2))
print('循环遍历输入得到输入的每个字符的ascii码如下:')
for i in str2:
print(ord(i))
print('换行的ascii码是',ord('\n'))
测试代码结果:

下面的代码也可以说明sys.stdin.readline和input 两者的区别
import sys
c = [x for x in sys.stdin.readline()]
print(c)
d = [x for x in input()]
print(d)

①结论
如果上面代码想要固定输入数字 只需将input() 和sys.stdin.readline() 加上int()的限制
可知上面两种方式的输入,sys.stdin.readline()方法会获取每行数据的最后的换行符
②:输入一行数据 以空格分隔 返回list
print('input 输入:')
list1 = [x for x in input().split()]
print(list1)
print('sys.stdin.readline() 输入:')
import sys
list2 = [x for x in sys.stdin.readline().split()]
print(list2)
结果

②:指定行数 输入多行数据 返回二维list
print('请输入数据的行数N:')
N = int(input())
print('N=',N)
print('input 输入:')
list1 = [[x for x in input().split()] for y in range(N)]
print(list1)
print('sys.stdin.readline() 输入:')
import sys
list2 = [[x for x in sys.stdin.readline().split()] for y in range(N)]
print(list2)

下面的代码是输出list里面的数据是整数
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)

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

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
结果:

④:不指定行数 但是每输入一行就处理一行 持续等待输入
import sys
try:
while True:
sn = input().strip()
# sn = sys.stdin.readline().strip()
#若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
if sn == '':
break
sn = list(sn.split())
print('此行输入为:',sn)
except:
pass
结果:

网友评论