저는 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 문 뒤에 새 줄이 있어야하며 인쇄와 괄호 사이의 공백을 닫아야합니다.