0

我在 Python 中的这行代码上遇到语法错误(在 2.7.5 和 3.3 中都尝试过)有人能告诉我有什么问题吗?

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

感谢任何帮助!

添加于 2013 年 10 月 31 日:我的问题源于这样一个事实,即在线转换器可能将代码从 C 严重转换为 Python。所以我真的需要关于如何将这个程序转换为 Python 的帮助(更喜欢 3,但 2 很好)。我需要很多帮助,因为我不 1) 完全理解 C 代码在做什么 2) 我对 Python 还是很陌生!因此,感谢您的帮助!!!完整的 C 源代码发布在 Pastebin 此处: http://pastebin.com/JTT1srSb

4

3 回答 3

4

Python won't let you use a single equals sign (assignment operator) within a conditional expression, unlike languages like C. Instead, try doing the following:

ctx.bytes[0] = t + len

if ctx.bytes[0] < t:
于 2013-10-30T05:40:33.107 回答
2

Unlike C, the assignment operator does not return any value and so can not be used in expressions. Python's if statement's condition has to be an expression. You can replace your code with:

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

PS: You don't need to put brackets around the condition of an if statement in Python.

于 2013-10-30T05:42:19.843 回答
0
(ctx.bytes[0] = t + len) < t

=在布尔表达式中使用了赋值运算符 ( ),这在 python 中是不允许的。

于 2013-10-30T05:37:27.497 回答