
<p id="2U4QO2OL">初入门的 Pythoner 在运行代码时免不了会遇到一些错误,刚开始可能看起来比较费劲。<br/></p><p id="2U4QO2OM">随着代码量的积累,熟能生巧,当遇到一些运行时错误时能够很快的定位问题原题。</p><p id="2U4QO2ON">下面整理了常见的 17 个错误,希望能够帮助到大家。</p><p id="2U4QO2OP">1、忘记在 if,for,def,elif,else,class 等声明末尾加 会导致如下:</p><pre></pre></p><p id="2U4QO2OR">2、使用 而不是 也会导致</p><p id="2U4QO2OS"> 是赋值操作符,而 是等于比较操作</p><p id="2U4QO2OT">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2OV">3、错误的使用缩进量导致</p><p id="2U4QO2P0"></p><p id="2U4QO2P1"></p><p id="2U4QO2P2">以及</p><p id="2U4QO2P3">记住缩进增加只用在以结束的语句之后,而之后必须恢复到之前的缩进格式。</p><p id="2U4QO2P4">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2P5">或者:</p><pre></pre></p><p id="2U4QO2P7">4、在 for 循环语句中忘记调用 len()</p><p id="2U4QO2P8">导致</p><p id="2U4QO2P9">通常你想要通过索引来迭代一个 list 或者 string 的元素,这需要调用 range() 函数。</p><p id="2U4QO2PA">要记得返回 len 值而不是返回这个列表。</p><p id="2U4QO2PB">该错误发生在如下代码中:</p><pre></pre><br/></p><p id="2U4QO2PC">5、尝试修改 string 的值</p><p id="2U4QO2PD">导致</p><p id="2U4QO2PE">string 是一种不可变的数据类型,该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2PF">而正确做法是:</p><pre></pre></p><p id="2U4QO2PH">6、尝试连接非字符串值与字符串</p><p id="2U4QO2PI">导致 </p><p id="2U4QO2PJ">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2PK">而正确做法是:</p><pre></pre></p><p id="2U4QO2PM">7、在字符串首尾忘记加引号</p><p id="2U4QO2PN">导致</p><p id="2U4QO2PO">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2PQ">8、变量或者函数名拼写错误</p><p id="2U4QO2PR">导致</p><p id="2U4QO2PS">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2PU">9、方法名拼写错误</p><p id="2U4QO2PV">导致 </p><p id="2U4QO2Q0">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2Q2">10、引用超过 list 最大索引</p><p id="2U4QO2Q3">导致 </p><p id="2U4QO2Q4">该错误发生在如下代码中:</p><pre></pre><br/></p><p id="2U4QO2Q5">11、使用不存在的字典键值</p><p id="2U4QO2Q6">导致</p><p id="2U4QO2Q7">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2Q9">12、尝试使用 Python 关键字作为变量名</p><p id="2U4QO2QA">导致</p><p id="2U4QO2QB">Python 关键不能用作变量名,该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2QC">Python3 的关键字有:</p><p><blockquote id="2U4QO2RS">and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield</blockquote></p><p id="2U4QO2QE">13、在一个定义新变量中使用增值操作符</p><p id="2U4QO2QF">导致</p><p id="2U4QO2QG">不要在声明变量时使用 0 或者空字符串作为初始值,这样使用自增操作符的一句等于,这意味着 spam 需要指定一个有效的初始值。</p><p id="2U4QO2QH">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2QJ">14、在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)</p><p id="2U4QO2QK">导致</p><p id="2U4QO2QL">在函数中使用局部变量而同时又存在同名全局变量时是很复杂的,使用规则是:</p><p id="2U4QO2QM">如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量。</p><p id="2U4QO2QN">这意味着你不能在定义它之前把它当全局变量在函数中使用。</p><p id="2U4QO2QO">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2">15、尝试使用 range()创建整数列表</p><p id="2U4QO2QR">导致</p><p id="2U4QO2QS">有时你想要得到一个有序的整数列表,所以 看上去是生成此列表的不错方式。然而,你需要记住 返回的是 ,而不是实际的 list 值。</p><p id="2U4QO2QT">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2QU">正确写法:</p><pre></pre></p><p id="2U4QO2QV">注意:在 Python 2 中 是能行的,因为在 Python 2 中 返回的是值,但是在 Python 3 中就会产生以上错误.</p><p id="2U4QO2R1">16、不存在 ++ 或者 -- 自增自减操作符</p><p id="2U4QO2R2">导致</p><p id="2U4QO2R3">如果你习惯于例如 , , 等其他的语言,也许你会想要尝试使用 或者 自增自减一个变量。</p><p id="2U4QO2R4">在 Python 中是没有这样的操作符的。</p><p id="2U4QO2R5">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2R6">正确写法:</p><pre></pre></p><p id="2U4QO2R8">17、忘记为方法的第一个参数添加 self 参数</p><p id="2U4QO2R9">导致</p><p id="2U4QO2RA">该错误发生在如下代码中:</p><pre></pre></p><p id="2U4QO2RC">作者:Al Sweigart</p><p id="2U4QO2RD">翻译:彭博</p><p id="2U4QO2RE">来源:开源中国</p><p id="2U4QO2RF">https://www.oschina.net/question/89964_62779</p><p id="2U4QO2RG">英文原文:</p><p id="2U4QO2RH">https://inventwithpython.com/blog/2012/07/09/16-common-python-runtime-errors-beginners-find/</p><p id="2U4QO2RJ"> Crossin的新书《<strong>码上行动:用ChatGPT学会Python编程</strong>》已经上市了。 本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。</p><p id="2U4QO2RK"> 购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。</p><p id="2U4QO2RL"> Crossin的其他书籍:</p><p id="2U4QO2RN"> 添加微信 <strong>crossin123 </strong>,加入编程教室共同学习 ~</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0809%2F55d83113j00shxuil0028d200u000cng00i9007o.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="2U4QO2RP"> 感谢 <strong>转发</strong> 和 <strong>点赞</strong> 的各位~</p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/153627.html