2017-10-07 118 views
-1

我一直在想,是否有一種方法來編碼一行,告訴python回到代碼中的其他地方?Python:有沒有辦法告訴程序回去?

事情是這樣的:

choose = int(input()) 
if choose == 1: 
    print(「Hi.」) 
else: 
*replay line1* 

一些真正的基本這樣呢?

我不是特別想要使用更大的循環,但如果可能,我可以嗎?

任何想法,我真的是新的python?

+4

你必須使用循環。 – Li357

+2

您要查找的術語是_control flow statement_。是的,Python有一些。正如@AndrewLi已經說過的,你可以使用一個循環來完成這個任務。 –

+0

基本上,您正在尋找一種在現代編程語言中不再被廣泛使用的控制結構:'GOTO'語句。這是因爲[結構化編程](https://en.wikipedia.org/wiki/Structured_programming)的出現。你應該爲此使用一個循環。 –

回答

2
choose = 0 
while (choose != 1) 
    choose = int(input()) 
    if choose == 1: 
     print(「Hi.」) 
0

這是有點怪異一個,並且它適合於其中值預計布爾例(只有兩個預期值),並且這些布爾值是0或1,而不是一些其他任意字符串,aaand您不希望存儲輸入的位置。

while int(input()) != 1: 
    # <logic for else> 
    pass # only put this if there's no logic for the else. 

print("Hi!") 

雖然有替代方法,例如:

choose = int(input()) 
while choose != 1: 
    <logic for else> 
    choose = int(input()) 

或者你可以創建一個函數:

def poll_input(string, expect, map_fn=str): 
    """ 
    Expect := list/tuple of comparable objects 
    map_fn := Function to map to input to make checks equal 
    """ 

    if isinstance(expect, str): 
     expect = (expect,) 

    initial = map_fn(input(string)) 
    while initial not in expect: 
     initial = map_fn(input(string)) 

    return initial 

就這樣用它作爲這樣的:

print("You picked %d!" % poll_input("choice ", (1, 2, 3), int)) 

對於更多不明確的情況

相關問題