2013-10-30 57 views
0

我在Python的这行代码中遇到语法错误(在2.7.5和3.3中都试过) 有人可以告诉我什么是错的吗?这条线为什么会在Python中引发语法错误

if (ctx.bytes[0] = t + len) < t: 

感谢任何帮助!

添加10/31/2013:我的问题源于这样一个事实:在线转换器可能将代码严重地从C转换为Python。所以我真的需要帮助如何将这个程序转换为Python(将喜欢3,但2是好的)。我需要很多帮助,因为我没有1)完全理解C代码在做什么,2)我对Python仍然很陌生!所以帮助表示赞赏!完整的C源代码发布在Pastebin这里:http://pastebin.com/JTT1srSb

+0

比较运算符是'==',而不是'=','='是一个语句,所以你不能在'if'中使用它。 – BrenBarn

+0

我其实正在尝试将C程序转换为Python并尝试使用在线转换器,但我不确定它是否正确。函数(在C中)是在这个链接:http://pastebin.com/xCbrPcsY –

+0

你知道python内置了md5吗? –

回答

0
(ctx.bytes[0] = t + len) < t 

您正在布尔表达式,其未在允许蟒使用赋值运算符(=)。

+0

好的。欣赏洞察力。将我正在使用的原始代码作为C文件(而不是C++)并尝试将其转换为Python。这是一个简短的程序,但显然我需要很多帮助才能完成。 –

+0

@MikeNeedham请参阅[这个问题](http://programmers.stackexchange.com/questions/102593/tips-on-converting-a-c-program-to-pure-python)。 –

+0

谢谢Ramchandra。仍然需要很多帮助来决定如何编写此代码。我粘贴了我需要转换的程序的完整C源代码:http://pastebin.com/4RxM1whN。如果有人能够看一看,并给我一个我需要去的方向的想法。 –

4

Python将不会让你使用一个平等的条件表达式内签署(赋值运算符),不像语言如C相反,尝试执行以下操作:

ctx.bytes[0] = t + len 

if ctx.bytes[0] < t: 
2

不像C,赋值运算符不不返回任何值,因此不能在表达式中使用。 Python的if声明的条件必须是一个表达式。你可以用下面的代码替换你的代码:

ctx.bytes[0] = t + len 
if len: 

PS:你不需要在Python中if语句的条件中加上括号。

相关问题