我在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。
答案 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中是不允许的。