Каков еще правильный синтаксис для 'если'?

Я - новый Python программист, который делает прыжок от 2.6.4 до 3.1.1. Все пошло прекрасное, пока я не пытался еще использовать 'если' оператор. Интерпретатор дает мне синтаксическую ошибку после, 'если' в 'еще, если' по причине я, может казаться, не выясняю.

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

function(input('input:'))

Я, вероятно, пропускаю что-то очень простое; однако, я не смог найти ответ самостоятельно.

278
задан Paul Turner 5 March 2013 в 04:03
поделиться

5 ответов

В Python написано "иначе, если" "элиф".
Кроме того, вам понадобится двоеточие после elif и else .

Простой ответ на простой вопрос. У меня была такая же проблема, когда я только начал (последние пару недель).

Итак, ваш код должен выглядеть так:

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

function(input('input:'))
436
ответ дан 23 November 2019 в 02:04
поделиться

Вы имеете в виду elif?

19
ответ дан 23 November 2019 в 02:04
поделиться

издавна правильный синтаксис для if / else if в Python - 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()
10
ответ дан 23 November 2019 в 02:04
поделиться

Вот небольшой рефакторинг вашей функции (она не использует else или elif):

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

@ ghostdog74: Python 3 требует скобок для «печати».

4
ответ дан 23 November 2019 в 02:04
поделиться
def function(a):
    if a == '1':
        print ('1a')
    elif a == '2':
        print ('2a')
    else:
        print ('3a')
13
ответ дан 23 November 2019 в 02:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: