①:輸入一行數據并輸
出兩種方法
# 輸入一行數據并輸出
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)
image.png
①結論
如果上面代碼想要固定輸入數字 只需將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
②:指定行數 輸入多行數據 返回二維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)
image.png
下面的代碼是輸出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)
image.png
③:不指定行數 輸入多行數據 返回二維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
結果:
image.png
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
結果:
image.png
④:不指定行數 但是每輸入一行就處理一行 持續等待輸入
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
結果:
image.png