-5

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

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

4 回答 4

5

你的问题在这里:

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

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

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

也许你的意思是:

print("... Attempt",i)
i += 1
于 2012-12-20T19:26:55.237 回答
3

不确定您要尝试做什么,但赋值是 Python 中的语句,而不是表达式,因此您不能在print. 我猜你想做

print("Attempt", i)
i = i+1
于 2012-12-20T19:27:15.343 回答
2

此错误来自以下行:

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

据我所知,您正在尝试在其他语言中做类似的事情i++,在这些语言中,您既可以递增i也可以从递增之前返回值。

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

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

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

def foo(bar, baz):
    print('bar:', bar)
    print('baz:', baz)
于 2012-12-20T19:27:53.627 回答
1

Python 有一个特性“命名参数”:当您可以通过参数名称传递参数时,以及

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

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

于 2012-12-20T19:27:09.917 回答