我想要問用戶的範圍(數組),即變量的開始,停止和增量。我很難要求每個變量而不打破我的字符串。到目前爲止,我有這樣的代碼:在Python中獲取用戶輸入範圍
x=numpy.arange(input('Enter Start:'), input('Enter Stop:'),input ('Enter increment:'))
但是我想它改爲:「請輸入啓動,停止,增加:」,並允許用戶輸入三個數字如2,10,2而不是一次輸入一個。
我會爲任何建議
我想要問用戶的範圍(數組),即變量的開始,停止和增量。我很難要求每個變量而不打破我的字符串。到目前爲止,我有這樣的代碼:在Python中獲取用戶輸入範圍
x=numpy.arange(input('Enter Start:'), input('Enter Stop:'),input ('Enter increment:'))
但是我想它改爲:「請輸入啓動,停止,增加:」,並允許用戶輸入三個數字如2,10,2而不是一次輸入一個。
我會爲任何建議
用戶必須確認通過敲擊回車鍵進入了感激。 input()
將自動輸出爲換行符,因此您無法在3行中調用input()
。你可以使用一個輸入,並要求所有3個值:
>>> userrange = input("Please input start, stop and increment: ")
Please input start, stop and increment: 1,2,3
>>> userrange
(1, 2, 3)
>>> start, stop, inc = raw_input('Enter start, stop, increment:').split(',')
Enter start, stop, increment:0, 5, 2
>>> print start, stop, inc
0 5 2
請記住,這些都是字符串,用int
將它們轉換
>>> import numpy as np
>>> makearange = lambda a: np.arange(int(a[0]),int(a[1]),int(a[2]))
>>> x = makearange(raw_input('Enter start,stop,increment: ').split(','))
Enter start,stop,increment: 2,100,10
>>> x
array([ 2, 12, 22, 32, 42, 52, 62, 72, 82, 92])
謝謝,你能解釋一下「makearange =拉姆達a:「我擔心我是新來的裸體。 – Candace
當然,lambda函數是Python的一部分,而不是numpy(有關它們的更多信息,請參閱http://diveintopython.org/power_of_introspection/lambda_functions.html)。這意味着你可以用一個參數調用'makearange'(在這個例子中是用戶輸入,它賦給變量'a'),然後makarange將返回一個numpy.arange對象,其中包含start,stop和由用戶定義的增量(即,使用用戶輸入的列表中的3個值)。 – Jdog