2015-06-11 131 views
-3

在我的情況下,我必須得到N號。來自用戶的輸入。我的意思是,如何在python中獲得用戶的N個輸入

Please enter size of an array: 

,並且如果用戶輸入3或任何他喜歡的,則程序應該從用戶3名的輸入在一個單一的線像

1 2 3 

並且如果他進入更大的超過3或者他進入該程序時應該警告他所提供的信息。

有沒有辦法做?

我的輸入是:

Enter size of an array : 5 

我的輸出應該是這樣的:

1 2 3 4 5 

而最主要的是,它..........不應該問用戶每次輸入5個輸入,並且它應該檢查用戶是否輸入了正確的號碼。的投入。 PS:請不要將其標記爲「重複」。我搜查了很多,發現沒有答案。這就是爲什麼在這裏問。

+1

__yes有很多方法可以做到this__ 大部分的這些方法將涉及以下 'str.split','input'(或'raw_input'),'int'(或'float' ),至少有一個「for循環」和一些其他的東西 –

+0

http://stackoverflow.com/questions/18332801/how-to-read-an-array-of-integers-from-single-line-of-input- in-python3 –

+0

另外https://stackoverflow.com/questions/4663306/how-can-i-get-a-list-as-input-from-the-user-in-python – CoryKramer

回答

1

您可以接受他們的意見,並將其轉換爲int

>>> size = int(input('Enter size of array: ')) 
Enter size of array: 3 

然後使用range函數中這個值迭代很多次。在列表理解中這樣做,您可以以相同的方式反覆詢問輸入。

>>> values = [int(input('Enter a value: ')) for _ in range(size)] 
Enter a value: 3 
Enter a value: 5 
Enter a value: 7 

>>> values 
[3, 5, 7] 

爲了更一步一步地做到這一點,你可以使用一個for循環

values = [] 
for _ in range(size): 
    values.append(int(input('Enter a value: '))) 

如果你只是希望他們進入一條線的值,不用擔心問會有多少人。您可以使用split()來標記字符串的空格(或您傳入的任何分隔符),然後將每個值轉換爲int

>>> values = [int(i) for i in input('Enter some values: ').split()] 
Enter some values: 3 5 7 8 
>>> values 
[3, 5, 7, 8] 
+0

除了他想'my_input.split ()[:size]'我認爲...但是是 –

+0

@CoryKramer如果用戶輸入5作爲數組的大小意味着它不應該要求用戶輸入5 val你一次又一次。 – nasr18

相關問題