作者回复: 我执行了一下,没有复现。 考虑到报错信息 TypeError: 'str' object is not callable 检查一下脚本上面是否有一个变量被定义为str了?
作者回复: 我提供一个调试方法给你,我经常会在怀疑出问题的代码附近,增加print(变量) 的方法,帮我观察变量的变化。如果执行起来没有报错,也就是语法上是正常的,那么逻辑方面就可以使用 print (year) print (chinese_zodiac) 等等,来帮你发现程序为什么没有按照你预期的方式运行下去。
作者回复: if+elif+else会提示无效语法 -- 应该是书写错误 if+else+else也无效 -- 语法问题 else语句只能出现一次
作者回复: 要看你的运行方式, 因为 test_ 是python单元测试默认的“潜规则”命名
作者回复: 按位与& 按位或| 逻辑与and 逻辑或or 这四个符号要区分好, 逻辑或 按位或 的功能是不同的
作者回复: 使用中括号的类型表示为list, 使用小括号就变成了tuple或int,类型是不同的
作者回复: 查看程序的报错信息,根据信息定位大致的原因进行调试或者通过搜索引擎找到类似的错误解决办法,也是程序员的基本功之一。这里明显出现比较操作符不支持字符串和整数运算错误,需要对类型做强制转换
作者回复: 是的。如果把j=j+1和print对齐,这个语句就会受到if语句的影响,而我们希望j无论是否被3整除都要+1,所以要和if语句对齐