作者回复: 认真检查一下最后一行的代码缩进,print()语句在不同的缩进位置,输出结果可是有很大差别的啊,要细心
作者回复: 你书写这段代码的文件名,它的文件名可能叫做datetime,导致导入时失败
作者回复: 不一样噢,while语句后面的结果成立,即返回值为True时循环会执行的,返回为False时,while语句内的语句块不会执行,需要分析下代码内容和下面的缩进
作者回复: 你好啊,出现了意料之外的结果,我们也称作程序出错了,只是这个错误是语法错误、运行时错误之外的程序逻辑错误 对付程序逻辑错误,有两个非常强大的工具,一个叫做print()函数,也就是在出错的结果之前,增加print(),输出中间结果,用来定位哪里出现了问题,再针对该行代码进行优化。 另一个工具叫做“debug”,debug也称作调试,一般在pycharm、vscode等IDE的运行按钮附近。如果程序不长,可以逐行运行,运行后可以在观察界面看到变量的变化和堆栈变化,如果程序比较长,可以在行号前面点击鼠标,会有红色的圆点,称作断点。这时候调试会运行到标记红色圆点的行,你可以从这一行再逐行分析程序的行为。 这是解决程序逻辑错误的最有效的两个办法,你可以分别尝试一下。
作者回复: 你好,要根据处理的对象来选择while 和for循环,例如我要遍历一个列表 用 for 结构就更简单,也更优雅;while循环更多用于数字的比较,比如 while count < 10 这种
作者回复: 好的,我帮您反馈给技术
作者回复: 分开执行下面的每一条语句,再回来理解一下 print(matrix[0][0]) print(matrix[1]) print(matrix[1][0]) print(matrix[2][0]) print([row[0] for row in matrix]) for i in range(4): print([row[i] for row in matrix])
作者回复: 你好,我逐一解答一下 1 zodiac_days[n] 里面的zodiac_days和n都是变量名称,为了描述方便我把它们两个用z 和 n 替代。 其中 z[]的写法并不是切片,而是表示z是一个字典数据类型(你需要再复习一下Python的基本数据类型数字、字符串、列表、字典),它的定义形式是: z = {'a':1 , 'b':2, 'c':3} 当你需要得到某个key对应的值的时候,就可以使用 z['a'] 的写法,会得到'a'对应的值“1” 2 字典z能够支持遍历,也就是得到字典里所有的key和值, 这时候就能使用 for xxx in z: 这样的写法 如果课程中的案例对你来说太复杂,可以先把其中的某些功能单独放拿出来测试,这样会更好理解某个模块的功能,理解后再结合案例学习效果较好
作者回复: zodiac_days我定义的元组都是星座的开始时间, 因此通过int_month和zodiac_days比较时,如果大于指定月份,再通过int_day和星座的日期起始时间去比对,就得到正确的星座了 为什么不是大于等于呢? 如果使用了大于等于,我需要将事先定义的星座日期改为每个星座的结束月份和日期,可以在循环中用prnit打印进行跟踪
作者回复: 你可以在M=M+1,的下面增加print,在打印一下中间结果。问题可能是出在代码缩进上。