1. 1. 忘记写冒号
  2. ifelifelseforwhileclassdef 语句后面忘记添加“:”
  3.  
  4. if spam == 42
  5. print('Hello!')
  6. 2. 误用 “=” 做等值比较
  7.  
  8. “=”是给变量赋值,“==”才是判断两个值是否相等:
  9.  
  10. score = 60
  11. if score = 60:
  12. print ('passed')
  13. 改正:
  14.  
  15. score = 60
  16. if score == 60:
  17. print ('passed')
  18. 3. 变量没有定义:
  19.  
  20. if age >= 18:
  21. print ('adult')
  22. print ('END')
  23. 会导致:NameError: name age is not defined.
  24.  
  25. 改正:
  26.  
  27. age = 20
  28. if age >= 18:
  29. print ('adult')
  30. print ('END')
  31. 4. 字符串与非字符串连接
  32.  
  33. 错误:
  34.  
  35. num = 12
  36. print('I have ' + num+ ' apples.')
  37. 非字符串和字符串连接的时候,要将非字符串转换为字符串类型之后才能连接,改正:
  38.  
  39. num = 12
  40. print('I have ' + str(num)+ ' apples.')
  41. 5. 列表的索引位置
  42.  
  43. 习惯性地认为列表元素的位置是从1开始的:
  44.  
  45. spam = ['cat', 'dog', 'mouse']
  46. print(spam[3])
  47. 列表元素的位置是从0开始的,所以第3个元素“mouse”的索引位置是2,改正:
  48.  
  49. spam = ['cat', 'dog', 'mouse']
  50. print(spam[2])
  51. 6. 使用自增 “++” 自减 “—”
  52.  
  53. 学过c语言或者Java的人会很习惯使用i++或者i—,但在Python中是没有自增自减操作符的:
  54.  
  55. spam = 0
  56. spam++
  57. 这时可以使用 “+=” 来代替 “++”,改正:
  58.  
  59. spam = 0
  60. spam += 1
  61. 7. 使用关键字命名变量
  62.  
  63. Python 3中一共33个关键字:
  64.  
  65. FalseNoneTrueandasassertbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield
  66.  
  67. 自定义变量时,变量名不能和这些关键字重复。
  68.  
  69. 8. 索引元素位置时忘记调用 len 方法
  70.  
  71. 通过索引位置来获取列表元素时,忘记要先使用 len 函数来获取列表的长度:
  72.  
  73. fam = ['dad', 'mom', 'son']
  74.  
  75. for i in range(fam):
  76.  
  77. print(fam[i])
  78. 改正:
  79.  
  80. fam = ['dad', 'mom', 'son']
  81.  
  82. for i in range(len(fam)):
  83.  
  84. print(fam[i])
  85. 9. 函数中的局部变量赋值前被使用
  86.  
  87. num = 42
  88.  
  89. def myFunction():
  90. print(num)
  91. num = 100
  92.  
  93. myFunction()
  94. 第一行定义了一个全局变量num,同时函数myFunction( )也定义了一个同名的局部变量,但程序执行时是先查找局部变量的,所以在函数中找到num之后就不到外部查找了,此时就会出现print的时候变量num还没赋值的错误。
  95.  
  96. 10. 缩进问题
  97.  
  98. 和其他语言的语法最大的不同就是,Python不能用括号来表示语句块,也不能用开始或结束标志符来表示,而是靠缩进来区分代码块的。
  99.  
  100. 常见的错误用法:
  101.  
  102. 1
  103.  
  104. print('Hello')
  105. print('World!')
  106. 错误是第二行的缩进会导致两个print语句是包含和被包含的关系,但他们两者是属于同一个代码块的,所以应该写成;
  107.  
  108. print('Hello')
  109. print('World!')
  110. 2
  111.  
  112. if spam == 42:
  113. print('Hello')
  114. print('World!')
  115. 错误是第三行的缩进,改正的方法有两种,一是如果两个print语句是属于同一代码块的,应该改正为
  116.  
  117. if spam == 42:
  118. print('Hello')
  119. print('World!')
  120. 二是如果第三行的print语句是和if语句是同一级的,则改正为
  121.  
  122. if spam == 42:
  123. print('Hello')
  124.  
  125. print('World!')
  126. 3)在Python 3中,缩进的时候,不能Tab和空格混用,每个缩进层次应该选择只使用Tab或者只使用空格。

Python新手最容易犯的十大错误的更多相关文章

  1. Spring常犯的十大错误,你踩过吗?

    1.错误一:太过关注底层 我们正在解决这个常见错误,是因为 "非我所创" 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理解特定库的 ...

  2. 使用 Spring Framework 时常犯的十大错误

    Spring 可以说是最流行的 Java 框架之一,也是一只需要驯服的强大野兽.虽然它的基本概念相当容易掌握,但成为一名强大的 Spring 开发者仍需要很多时间和努力. 在本文中,我们将介绍 Spr ...

  3. Spring 常犯的十大错误,答应我 打死都不要犯好吗?

    1. 错误一:太过关注底层 我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理解特定库的内部结构及其实现, ...

  4. Spring 常犯的十大错误,(收藏后)永远不要在犯了

    1. 错误一:太过关注底层 我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理解特定库的内部结构及其实现, ...

  5. Spring 常犯的十大错误,这坑你踩过吗?

    阅读本文大概需要 9 分钟. 1.错误一:太过关注底层 我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理 ...

  6. Spring 常犯的十大错误,打死都不要犯!

    原文:https://www.toptal.com/spring/top-10-most-common-spring-framework-mistakes 作者:Toni Kukurin,译者:万想 ...

  7. Python开发者最常犯的10个错误

    Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库.与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块. 在平时的工作中,Python开发者很容易犯一些小错 ...

  8. 小白学PYTHON时最容易犯的6个错误,看看你遇到过几个

    最近又在跟之前的同学一起学习python,一起进步,发现很多测试同学在初学python的时候很容易犯一些错误,特意总结了一下.其实这些错误不仅是在学python时会碰到,在学习其他语言的时候也同样会碰 ...

  9. 小白学PYTHON时最容易犯的6个错误

    最近又在跟之前的同学一起学习python,一起进步,发现很多测试同学在初学python的时候很容易犯一些错误,特意总结了一下.其实这些错误不仅是在学python时会碰到,在学习其他语言的时候也同样会碰 ...

随机推荐

  1. Python数据驱动DDT的应用

    在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行 ...

  2. [uboot] (第三章)uboot流程——uboot-spl代码流程 后续2018版本分析

    board_init_f在/u-boot-2018.07-fmxx/arch/arm/mach-fmxx/spl.c中定义 board_init_f之后,和转载的部分有出入: u-boot-2018. ...

  3. nodejs之express入门

    首先安装nodejs,官网下载安装包直接安装, 由于node自带npm,所以npm命令直接即可使用 打开cmd,使用npm install -g express-generator安装express ...

  4. echarts 添加自定义label标签

    1.echarts 自定义标签 注:当设置visualMap的后,给覆盖regions单独定义的值(如果data 中没有regions的地区 则无妨,我这个是从data中删除'青岛',但是lable ...

  5. js-10s倒计时后关闭窗口

    效果: html: <h1 id="h1">10s后关闭窗口</h1> <a id="a1">启动</a> js ...

  6. 有时间看看这个方法 会不会 避免 xss

    Server.HtmlEncode  能将字符串原样输出 包括html标签

  7. jquery focus()方法 语法

    jquery focus()方法 语法 作用:当元素获得焦点时,发生 focus 事件.大理石平台价格 触发focus事件语法:$(selector).focus() 将函数绑定到focus事件语法: ...

  8. JS大文件上传断点续传解决方案

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

  9. 1110 Complete Binary Tree (25 分)

    Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each in ...

  10. [CSP-S模拟测试]:分组配对(倍增+二分)

    题目传送门(内部题108) 输入格式 输入文件第一行为两个正整数$n,M$. 接下来两行,第一行为$n$个正整数$a_1\sim a_n$,其中$a_i$表示编号为$i$的男生的实力值:第二行为$n$ ...