我是此函数的无效关键字

时间:2012-12-20 19:25:06

标签: python python-3.x

所以,对于学校来说,我们必须做一个允许用户猜数字的程序。我有以下代码:

import random

my_number=random.randrange(100)
player_number=605
i=int(0)
while player_number!=my_number :
    player_number=int(input("Guess what number I am thinking of :"))
    if player_number<my_number:
        print("Too low")
    else:
        print("Too high")
    print("... Attemp", i=i+1) 
print("Right")

我收到一条错误消息,指出'i' is an invalid function。任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:5)

你的问题在这里:

print("... Attemp", i=i+1) 

print函数采用任意数量的位置参数和一小组x = ...形式的关键字参数。

i不在那组允许的关键字参数中。

也许你的意思是:

print("... Attempt",i)
i += 1

答案 1 :(得分:3)

不确定您要尝试做什么,但在Python中赋值是语句,而不是表达式,因此您无法在print中使用它。我猜你想做什么

print("Attempt", i)
i = i+1

答案 2 :(得分:2)

此错误来自以下行:

print("... Attemp", i=i+1)

据我所知,您正在尝试在其他语言中执行类似i++的操作,您可以增加i并从增量前返回值。

在Python中,你不能这样做,把它放在单独的行上:

print("... Attemp", i)
i += 1

错误是因为函数调用中的name=value是指定关键字参数的语法,因此例如,您可以使用foo(baz=2, bar=1)调用以下函数,它等同于调用{{ 1}}:

foo(1, 2)

答案 3 :(得分:1)

Python有一个“命名参数”功能:当您可以按名称传递参数时,

print("... Attemp", i=i+1) 

正是如何完成的:第一个i在这里成为要传递给print的参数的名称,但是print不理解这样的命名参数。