синтаксическая ошибка Python - PullRequest
0 голосов
/ 26 июля 2011

, когда я пытаюсь запустить этот код:

def table():
    nb = 7
    i = 0
    while i < 20 :
        if ((i+1)*nb)%3 == 0 :
            print(i+1 , "*" , nb , "=" , (i+1)*nb'*')
        else :
            print(i+1 , "*" , nb , "=" , (i+1)*nb)

    i += 1

Я получаю синтаксическую ошибку для этой части (последней ')

        print(i+1 , "*" , nb , "=" , (i+1)*nb'*')

И я действительно не понимаю, почемуЕсть ли проблема?

Ответы [ 5 ]

10 голосов
/ 26 июля 2011

Я подозреваю, что вы пытаетесь сделать:

print(i+1 , "*" , nb , "=" , (i+1)*nb, '*')
                                     ^

Обратите внимание на запятую перед последним аргументом.

2 голосов
/ 26 июля 2011

Вы пропустили запятую, а также ваш отступ был неверен:

def table():
    nb = 7
    i = 0
    while i<20 :
        if ((i+1)*nb)%3==0 :
            print(i+1 , "*" , nb , "=" , (i+1)*nb, '*')
        else :
            print(i+1 , "*" , nb , "=" , (i+1)*nb)

        i +=1
2 голосов
/ 26 июля 2011

Вам не хватает запятой.Попробуйте это:

print(i+1 , "*" , nb , "=" , (i+1)*nb , '*')
1 голос
/ 26 июля 2011

Ваша синтаксическая ошибка здесь: print(i+1 , "*" , nb , "=" , (i+1)*nb'*')

в (i+1)*nb'*' ....... nb и 'не разделены.

print(i+1 , "*" , nb , "=" , (i+1)*nb, '*')

должно быть правильным

0 голосов
/ 26 июля 2011

Вы делаете nb'*', что эквивалентно 7 '*'.Оператора сопоставления int / str нет, я думаю, вы хотите:

print(i+1 , "*" , nb , "=" , (i+1)*nb*'*')

, но вы действительно не понимаете эту программу.Я бы, вероятно, использовал что-то вроде:

def table(multiplier=7, maximum=20):
    for i in range(1, maximum+1):
        answer = i * multiplier
        if (answer) % 3 == 0:
            print("%d * %d = %s" % (i, multiplier, '*' * answer))
        else :
            print("%d * %d = %d" % (i, multiplier, answer))

, поскольку он имеет четкие имена переменных, позволяет передавать конкретные множители и использует более питонический цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...