Python编写FizzBuzz代码出现SyntaxError: cannot assign to function call报错求解
SyntaxError: cannot assign to function call 报错原因分析
核心报错原因
你遇到的该语法报错的直接诱因是Python 语法不允许向函数调用的返回值赋值,你代码中所有int(number) = "fizzbuzz"这类写法完全不符合语法规则。int(number)是调用内置函数int()得到的临时返回值,不属于可被赋值的左值(变量、列表元素、对象属性这类可被赋值的对象才是合法左值),解释器解析到这类赋值语句时会直接抛出语法错误,不会进入代码执行阶段。
代码中的其他问题
除了赋值语法错误外,你的FizzBuzz实现还有多处逻辑/规范问题:
range(1,101)生成的number本身就是整数,反复调用int(number)做类型转换是完全多余的操作- 你使用了中文双引号
“”包裹字符串,Python只识别英文单引号'或英文双引号"作为字符串边界 - 你的判断逻辑存在重叠问题:如果一个数同时被3和5整除,第一个判断分支赋值后,后续两个单条件判断依然会执行,会覆盖之前的
fizzbuzz值 print()语句放在了for循环外侧,只会输出最后一次遍历的结果,无法输出1到100的所有结果
修正后的可运行代码
for number in range(1, 101): # 声明单独变量存储输出内容 output = number if number % 3 == 0 and number % 5 == 0: output = "fizzbuzz" elif number % 3 == 0: output = "fizz" elif number % 5 == 0: output = "buzz" print(output)
内容的提问来源于stack exchange,提问作者RosalinaTheGalaxyWolf
相关产品推荐
相关产品推荐

