开发者

python syntax error

when I try to run this c开发者_如何学Goode :

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

I get an syntax error for this part (the last ')

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

And I really don't understant why, is there any issue ?


I suspect you're trying to do:

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

Note the comma before the final argument.


You are missing a comma, and also your indentation was all wrong:

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


You are missing a comma. Try this:

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


Your syntax error is here : print(i+1 , "*" , nb , "=" , (i+1)*nb'*')

in the (i+1)*nb'*' .......the nb and ' are not seperated.

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

should be right


You are doing nb'*', which is equivalent to 7'*'. There is no int/str juxtaposition operator, I guess you want:

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

but you really aren't clear in this programme. I would probably use something like:

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))

as it's got clear variable names, allows you to pass in specific multipliers and uses a more pythonic loop.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜