初学Python常见异常错误,总有一处你会遇到!
初学Python常见错误
- 忘记写冒号
 - 误用=
 - 错误 缩紧
 - 变量没有定义
 - 中英文输入法导致的错误
 - 不同数据类型的拼接
 - 索引位置问题
 - 使用字典中不存在的键
 - 忘了括号
 - 漏传参数
 - 缺失依赖库
 - 使用了python中对关键词
 - 编码问题
 
1. 忘记写冒号
在 if、elif、else、for、while、def语句后面忘记添加 :
age = 42
if age == 42
    print('Hello!')
  File "<ipython-input-19-4303141d6f97>", line 2
    if age == 42
                ^
SyntaxError: invalid syntax
2. 误用 =
=` 是赋值操作,而判断两个值是否相等是 `==
gender = '男'
if gender = '男':
    print('Man')
  File "<ipython-input-20-191d01f95984>", line 2
    if gender = '男':
              ^
SyntaxError: invalid syntax
3. 错误的缩进
Python用缩进区分代码块,常见的错误用法:
print('Hello!')
 print('Howdy!')
  File "<ipython-input-9-784bdb6e1df5>", line 2
    print('Howdy!')
    ^
IndentationError: unexpected indent
num = 25
if num == 25:
print('Hello!')
  File "<ipython-input-21-8e4debcdf119>", line 3
    print('Hello!')
        ^
IndentationError: expected an indented block
4. 变量没有定义
if city in ['New York', 'Bei Jing', 'Tokyo']:
    print('This is a mega city')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-22-a81fd2e7a0fd> in <module>
----> 1 if city in ['New York', 'Bei Jing', 'Tokyo']:
      2     print('This is a mega city')
NameError: name 'city' is not defined
5. 中英文输入法导致的错误
- 英文冒号
 - 英文括号
 - 英文逗号
 - 英文单双引号
 
if 5>3:
    print('5比3大')
  File "<ipython-input-46-47f8b985b82d>", line 1
    if 5>3:
          ^
SyntaxError: invalid character in identifier
if 5>3:
    print('5比3大')
  File "<ipython-input-47-4b1df4694a8d>", line 2
    print('5比3大')
                ^
SyntaxError: invalid character in identifier
spam = [1, 2,3]
  File "<ipython-input-45-47a5de07f212>", line 1
    spam = [1, 2,3]
                 ^
SyntaxError: invalid character in identifier
if 5>3:
    print('5比3大‘)
  File "<ipython-input-48-ae599f12badb>", line 2
    print('5比3大‘)
                 ^
SyntaxError: EOL while scanning string literal
6. 不同数据类型的拼接
字符串/列表/元组 支持拼接
字典/集合不支持拼接
'I have ' + 12 + ' eggs.'
#'I have {} eggs.'.format(12)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-29-20c7c89a2ec6> in <module>
----> 1 'I have ' + 12 + ' eggs.'
TypeError: can only concatenate str (not "int") to str
['a', 'b', 'c']+'def'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-31-0e8919333d6b> in <module>
----> 1 ['a', 'b', 'c']+'def'
TypeError: can only concatenate list (not "str") to list
('a', 'b', 'c')+['a', 'b', 'c']
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-33-90742621216d> in <module>
----> 1 ('a', 'b', 'c')+['a', 'b', 'c']
TypeError: can only concatenate tuple (not "list") to tuple
set(['a', 'b', 'c'])+set(['d', 'e'])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-35-ddf5fb1e6c8c> in <module>
----> 1 set(['a', 'b', 'c'])+set(['d', 'e'])
TypeError: unsupported operand type(s) for +: 'set' and 'set'
grades1 = {'Mary':99, 'Henry':77}
grades2 = {'David':88, 'Unique':89}
grades1+grades2
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-36-1b1456844331> in <module>
      2 grades2 = {'David':88, 'Unique':89}
      3 
----> 4 grades1+grades2
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
7. 索引位置问题
spam = ['cat', 'dog', 'mouse']
print(spam[5])
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-38-e0a79346266d> in <module>
      1 spam = ['cat', 'dog', 'mouse']
----> 2 print(spam[5])
IndexError: list index out of range
8. 使用字典中不存在的键
在字典对象中访问 key 可以使用 [],
但是如果该 key 不存在,就会导致:KeyError: 'zebra'
spam = {'cat': 'Zophie',
        'dog': 'Basil',
        'mouse': 'Whiskers'}
print(spam['zebra'])
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-39-92c9b44ff034> in <module>
      3         'mouse': 'Whiskers'}
      4 
----> 5 print(spam['zebra'])
KeyError: 'zebra'
为了避免这种情况,可以使用 get 方法
spam = {'cat': 'Zophie',
        'dog': 'Basil',
        'mouse': 'Whiskers'}
print(spam.get('zebra'))
None
key 不存在时,get 默认返回 None
9. 忘了括号
当函数中传入的是函数或者方法时,容易漏写括号
spam = {'cat': 'Zophie',
        'dog': 'Basil',
        'mouse': 'Whiskers'}
print(spam.get('zebra')
  File "<ipython-input-43-100a51a7b630>", line 5
    print(spam.get('zebra')
                           ^
SyntaxError: unexpected EOF while parsing
10. 漏传参数
def diyadd(x, y, z):
    return x+y+z
diyadd(1, 2)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-44-7184f3f906ca> in <module>
      2     return x+y+z
      3 
----> 4 diyadd(1, 2)
TypeError: diyadd() missing 1 required positional argument: 'z'
11. 缺失依赖库
电脑中没有相关的库
12. 使用了python中的关键词
如try、except、def、class、object、None、True、False等
try = 5
print(try)
  File "<ipython-input-1-508e87fe2ff3>", line 1
    try = 5
        ^
SyntaxError: invalid syntax
def = 6
print(6)
  File "<ipython-input-2-d04205303265>", line 1
    def = 6
        ^
SyntaxError: invalid syntax
13. 文件编码问题
import pandas as pd
df = pd.read_csv('data/twitter情感分析数据集.csv')
df.head()
尝试encoding编码参数传入utf-8、gbk
df = pd.read_csv('data/twitter情感分析数据集.csv', encoding='utf-8')
df.head()
都报错说明编码不是utf-8和gbk,而是不常见都编码,这里我们需要传入正确都encoding,才能让程序运行。
python有个chardet库,专门用来侦测编码。
import chardet
binary_data = open('data/twitter情感分析数据集.csv', 'rb').read()
chardet.detect(binary_data)
{'encoding': 'Windows-1252', 'confidence': 0.7291192008535122, 'language': ''
												
											初学Python常见异常错误,总有一处你会遇到!的更多相关文章
- Python常见的错误汇总
		
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...
 - Python常见异常及常用单词翻译
		
Python常见异常及常用单词意思 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportE ...
 - python常见的错误提示处理
		
python常见的错误有 NameError变量名错误 IndentationError代码缩进错误 AttributeError对象属性错误 TypeError类型错误 IOError输入输出错误 ...
 - Python 常见异常类型
		
python标准异常 异常名称 描述 BaseException 所有异常的基类Sy ...
 - Python 常见的错误类型和继承关系
		
Python所有的错误都是从BaseException类派生 BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit ...
 - Python语言常见异常错误类型
		
在运行或编写一个程序时常会遇到错误异常,这时python会给你一个错误提示类名,告诉出现了什么样的问题(Python是面向对象语言,所以程序抛出的异常也是类).能很好的理解这些错误提示类名所代表的意思 ...
 - python常见的错误异常
		
1.AssertionError 该异常在assert()语句运行失败时输出 2.AttributeError 该异常在参考或设置属性失败时输出 eg:class Gs: pass g = Gs() ...
 - python 常见异常
		
上面是查看异常的类型 ,知道了异常的类型,才知道怎么捕获这种异常 ================================ AttributeError 不存在属性 IoError 输入或输 ...
 - python常见异常提示
		
PEP8 expected 2 blank lines, found 1 定义方法时,出现期望是2个空白行,但是实际检测到是1个.方法与上面内容间隔期望为两个换行符 PEP8 This diction ...
 
随机推荐
- Linux系统文件属性知识
			
---------------------------------------------------------------------------------------------------- ...
 - Emoji来龙去脉
			
1997年,日本人发明,定义在unicode的私有区域. 此时两个字节可以表示emoji. IOS 4在日本支持emoji,使用的是这种私有编码. 2010年,unicode 6.0正式支持emoji ...
 - Winform中设置BackgroundWorker在取消时关闭后台进程
			
场景 在Winform中拖拽 一个BackgroundWorker控件,配合进度条控件能开启一个后台线程并报告进度条进度. 但是在执行后台线程的任务时,如果想要取消,怎样让其停止执行. 注: 博客主页 ...
 - Selenium(十一):设置元素等待、上传文件、下载文件
			
1. 设置元素等待 前面我们接触了几个元素等待方法,sleep.implicitly_wait方法,这一章我们就来整体学一下. 现在大多数Web应用程序使用的都是AJAX技术.当浏览器加载页面时,页面 ...
 - 需要知道的jQuery对象和DOM对象之间的转换
			
jQuery对象和DOM对象之间的转换 jQuery对象就是通过jQuery包装DOM对象后产生的对象. jQuery对象和DOM对象不能互相调用对方的方法或属性,但它们之间可以进行转换. 两者都无法 ...
 - SAP 固定资产添加新类别
			
需求:添加资产新类别(LEASE) 步骤: 1.添加 Account determination ①SPRO->Financial Accounting(New)->Asset Accou ...
 - SAP MM 供应商无英文名称,ME21N里却带出了英文名字?
			
SAP MM 供应商无英文名称,ME21N里却带出了英文名字? 近日收到客户业务用户上报的一个问题说ME21N的时候,供应商101071的名字怎么是英文名字,实际上供应商主数据里是没有这个英文名字, ...
 - ABP入门教程11 - 展示层实现增删改查-视图
			
点这里进入ABP入门教程目录 创建目录 在展示层(即JD.CRS.Web.Mvc)的Views下新建文件夹Course //用以存放Course相关视图 创建视图 在JD.CRS.Web.Mvc/Vi ...
 - nginx——keepalived
			
nginx--keepalived 1.keepalived高可用基本概述 什么是高可用 一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用 ...
 - 微信小程序根据生日获取年龄
			
// 根据出生日期计算年龄周岁 传参格式为1996-06-08 // 根据出生日期计算年龄周岁 传参格式为1996-06-08 function getAge(strBirthday) { var r ...