为什么这行会在Python中引发语法错误

时间:2013-10-30 05:34:26

标签: python syntax

我在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

3 个答案:

答案 0 :(得分:4)

Python不会让你在条件表达式中使用单个等号(赋值运算符),这与C之类的语言不同。相反,请尝试执行以下操作:

ctx.bytes[0] = t + len

if ctx.bytes[0] < t:

答案 1 :(得分:2)

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

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

PS:你不需要在Python中使用if语句的条件括起来。

答案 2 :(得分:0)

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

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

相关问题