不多說,直接上代碼:
1 list1 = [] #定義一個空列表 2 str1 = input("請輸入數值,用空格隔開:") # 3 list2 = str1.split(" ") #list2用來存儲輸入的字符串,用空格分割 4 5 i = 0 6 while i <= len(list2)+1: 7 list1.append(int(list2.pop())) #將list2中的數據轉換為整型並賦值給list1 8 i += 1 9 10 print(list1) #打印list1,可知list1為用戶輸入整數的列表
改進:以上代碼中有兩個小問題,其一是打印所得列表list1與用戶輸入順序相反;其二是列表list1中元素個數少於用戶輸入的整數個數。問題一可以用python中的reverse()函數將列表list1中的元素進行反向排序,至於問題二,其出現的原因是在上述第7行代碼:list1.append(int(list2.pop())) 此行代碼中的list2.pop()影響了循環的次數,因為每次列表list2中pop出一個元素時,len(list2)的值減一,這樣最終導致list1中的元素數量少於list2中的元素個數,及列表list1中元素個數少於用戶輸入的整數個數。因此,可行的方法是在進入循環之前我們用一個不變的變量來表示列表list2的長度值,然后用這個值來控制循環,這樣就不會出現問題二的情況了,改進代碼如下:
1 list1 = [] #定義一個空列表 2 str1 = input("請輸入數值,用空格隔開:") 3 list2 = str1.split(" ") #list2用來存儲輸入的字符串,用空格分割 4 5 list2_length = len(list2) 6 i = 0 7 while i <= list2_length-1: 8 list1.append(int(list2.pop())) #將list2中的數據轉換為整型並賦值給list1 9 i += 1 10 11 print(list1) #打印list1,可知list1為用戶輸入整數的列表 12 list1.reverse() 13 print(list1) #再次打印list1
說明:以上是比較繁瑣的一種方法了,但是比較容易理解,下面方法更為簡單,用python內置函數map()來解決此問題。
首先我們必須明白python的map()函數是什么,要怎么用?(PS:以下內容來自網站:http://www.runoob.com/python/python-func-map.html)
Python map() 函數
描述
map() 會根據提供的函數對指定序列做映射。
第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
語法
map() 函數語法:
map(function, iterable, ...)
參數
- function -- 函數,有兩個參數
- iterable -- 一個或多個序列
返回值
Python 2.x 返回列表。
Python 3.x 返回迭代器。
實例
以下實例展示了 map() 的使用方法:

上面我們介紹了python內置函數map(),下面就python中輸入多個數字這一問題用map()函數解決如下:
nums = list(map(int, input().split()))
一行代碼搞定,是不是很驚奇!其實python就是這么簡潔。
人生苦短,我用python!

Python 內置函數