2016-11-20 73 views
0

我正在讀取一個用戶輸入,它必須是一個字符和一個限制內的整數。 假設我有一個大小爲3的列表,那麼用戶輸入必須是%s,其中%d必須是1,2或3.大小可以變化,因此使用:Python - 如何在檢查%d是否在列表長度內的同時查詢「s%d」?

選擇==「s1」或選擇==「s2」或... 不起作用。

以下是我有:

num = [range(1, len(input) + 1)] 
if choice == "s%d" %d in num: 
    print("s%d) 

我已經嘗試了幾個選項和python3功能,但我似乎無法得到它的工作。 讓我知道我是否應該提供更多信息。

**「s1」必須作爲整個字符串輸入,它不能分開。

+1

請出示一些代碼 –

+1

你應該提供儘可能多的信息,以產生[最低,完整,可驗證的例子](http://stackoverflow.com/help/mcve) – blacksite

回答

0

只是檢查是否從用戶輸入的號碼在你列表LEN範圍,U可以這樣做:

num = [range(1, len(input) + 1)] 
choice = input("Enter 's' followed by a number: ") 
if int(choice[1:]) > len(l): # It will work if indeed the single 
    <do something>   # letter is followed by an int. 
+0

s和數字必須在一起作爲一個字符串。對不起,不清楚。 – jurd

+0

是的,我知道。如果用戶提供了「s532」這樣的字符串,「choice [1:]」會將其剪切爲「532」,以便稍後檢查int(「532」)是否在列表長度範圍內。 – Nf4r

+0

如果選擇== 「S」 + STR((選擇[1:])> LEN(NUM)): \t \t \t打印(STR(選擇[1:])> LEN(NUM)) 我想得到一個TypeError:無法定義的類型:str()> int() – jurd

相關問題