
之前做測試筆試的時候有很長一段時間不清楚怎么從鍵盤獲取多個值的輸入終于一時興起將各種情況下獲取輸入數值的方法進行了歸納希望對剛好看到的您有幫助。一、輸入為一個值需要注意input()返回的是字符串類型因此讀取數字時需要進行類型轉換b int(input(請輸入b:)) print(type(b),b)運行結果請輸入b:2class int 2二、 輸入為2、3個這類比較少的可以一個個接收的數值接收后為字符串類型input()結合str.split()方法需要注意str.split()方法返回的是列表類型m, n input(請輸入m和n:).split( ) print(m和n的值分別為{0},{1},它們是字符串類型.format(m,n))運行結果這里相當于字符串1 2經過split()方法用 空格分割后返回的是列表[‘1’, ‘2’]。其中m1、n2請輸入m和n:1 2m和n的值分別為1,2,它們是字符串類型三、 輸入為2、3個這類比較少的可以一個個接收的數值接收后為整數類型方法1利用map(fun,seq)函數。下面的int可以用其他類型如float替代m, n map(int, input(請輸入m和n:).split( )) print(m和n的值分別為{0},{1},它們是int整數類型.format(m,n))運行結果請輸入m和n:1 2m和n的值分別為1,2,它們是int整數類型方法2直接利用列表推導式。下面的int可以用其他類型如float替代m, n [int(x) for x in input(請輸入m和n:).split( )] print(m和n的值分別為{0},{1},它們是int整數類型.format(m,n))運行結果請輸入m和n:1 2m和n的值分別為1,2,它們是int整數類型四、一行n個值的輸入個數未知方法1 結果為str類型list input(請輸入).split() print(type(list), list) #class list [1, 2, 3] for i in list: print(type(i), i)運行結果請輸入1 2 3class list [1, 2, 3]class str 1class str 2class str 3如果需要的輸入為其他形式應當在遍歷的同時進行類型轉換 。方法2結果為int類型a list(map(int,input(請輸入).split())) print(type(a), a) for i in a: print(type(i), i)運行結果請輸入1 2 3class list [1, 2, 3]class int 1class int 2class int 3五、已知行數的多行輸入1需要的輸入為字符串形式text lines int(input(輸入行數)) for i in range(lines): text input() print(text) #接收的輸入為字符串形式運行結果輸入行數21234561234562 如果需要的輸入為列表形式則可以在這個字符串基礎上將這個沒有逗號或空格的字符拆分a list(text) print(a) #接收的輸入為列表形式此時結果為[1, 2, 3, 4, 5, 6]3如果需要的輸入為數字形式則可以繼續將這個列表轉換為數字將列表中的元素轉換成數字的幾種方法方法1使用join的方法a [1, 2, 3] b .join(a) print(b)輸出1 2 3方法2使用列表生成式進行轉換a [1, 2, 3] b [int(x) for x in a] #此時b的結果為[1, 2, 3] for i in b: print(i,end )輸出1 2 3