[python] ‘else if’의 올바른 구문은 무엇입니까?

저는 2.6.4에서 3.1.1로 도약하는 새로운 Python 프로그래머입니다. ‘else if’문을 사용하려고 할 때까지 모든 것이 잘되었습니다. 해석기가 이해할 수없는 이유로 ‘else if’의 ‘if’다음에 구문 오류가 발생합니다.

def function(a):
    if a == '1':
        print ('1a')
    else if a == '2'
        print ('2a')
    else print ('3a')

function(input('input:'))

아마도 아주 간단한 것을 놓치고있을 것입니다. 그러나 나는 스스로 답을 찾을 수 없었습니다.



답변

파이썬에서 “else if”는 “elif”로 표기됩니다.
또한 elif및 뒤에는 콜론이 필요 합니다 else.

간단한 질문에 대한 간단한 답변. 처음 시작할 때 (마지막 몇 주 동안) 같은 문제가있었습니다.

따라서 코드는 다음과 같아야합니다.

def function(a):
    if a == '1':
        print('1a')
    elif a == '2':
        print('2a')
    else:
        print('3a')

function(input('input:'))


답변

당신은 의미 elif합니까?


답변

def function(a):
    if a == '1':
        print ('1a')
    elif a == '2':
        print ('2a')
    else:
        print ('3a')


답변

옛날부터 if/else if파이썬에서 올바른 구문 은 elif입니다. 그건 그렇고, if/else.eg 가 많으면 사전을 사용할 수 있습니다

d={"1":"1a","2":"2a"}
if not a in d: print("3a")
else: print (d[a])

msw의 경우 사전을 사용하여 함수를 실행하는 예입니다.

def print_one(arg=None):
    print "one"

def print_two(num):
    print "two %s" % num

execfunctions = { 1 : (print_one, ['**arg'] ) , 2 : (print_two , ['**arg'] )}
try:
    execfunctions[1][0]()
except KeyError,e:
    print "Invalid option: ",e

try:
    execfunctions[2][0]("test")
except KeyError,e:
    print "Invalid option: ",e
else:
    sys.exit()


답변

다음은 함수를 약간 리팩토링 한 것입니다 ( “else”또는 “elif”는 사용하지 않음).

def function(a):
    if a not in (1, 2):
        a = 3
    print(str(a) + "a")

@ ghostdog74 : Python 3에는 “print”에 괄호가 필요합니다.


답변

def function(a):
    if a == '1':
        print ('1a')
    else if a == '2'
        print ('2a')
    else print ('3a')

다음과 같이 수정해야합니다.

def function(a):
    if a == '1':
        print('1a')
    elif a == '2':
        print('2a')
    else:
        print('3a')

보시다시피, elif로 변경 해야하는 경우 ‘2’뒤에 콜론이 있어야하고 else 문 뒤에 새 줄이 있어야하며 인쇄와 괄호 사이의 공백을 닫아야합니다.


답변