python编辑elif显示错误_Python运行的17个时新手常见错误小结

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)

该错误将发生在类似如下代码中:

if spam == 42

print('Hello!')

2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)

= 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:

if spam = 42:

print('Hello!')

3)错误的使用缩进量。(导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”)

记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:

print('Hello!')

print('Howdy!')

或者:

if spam == 42:

print('Hello!')

print('Howdy!')

或者:

if spam == 42:

print('Hello!')

4)在 for 循环语句中忘记调用 len() (导致“TypeError: 'list' object cannot be interpreted as an integer”)

通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。

该错误发生在如下代码中:

spam = ['cat', 'dog', 'mouse']

for i in range(spam):

print(spam[i])

5)尝试修改string的值(导致“TypeError: 'str' object does not support item assignment”)

string是一种不可变的数据类型,该错误发生在如下代码中:

spam = 'I have a pet cat.'

spam[13] = 'r'

print(spam)

而你实际想要这样做:

spam = 'I have a pet cat.'

spam = spam[:13] + 'r' + spam[14:]

print(spam)

6)尝试连接非字符串值与字符串(导致 “TypeError: Can't convert 'int' object to str implicitly”)

该错误发生在如下代码中:

numEggs = 12

print('I have ' + numEggs + ' eggs.')

而你实际想要这样做:

numEggs = 12

print('I have ' + str(numEggs) + ' eggs.')

或者:

numEggs = 12

print('I have %s eggs.' % (numEggs))

7)在字符串首尾忘记加引号(导致“SyntaxError: EOL while scanning string literal”)

该错误发生在如下代码中:

print(Hello!')

或者:

print('Hello!)

或者:

myName = 'Al'

print('My name is ' + myName + . How are you?')

8)变量或者函数名拼写错误(导致“NameError: name 'fooba' is not defined”)

该错误发生在如下代码中:

foobar = 'Al'

print('My name is ' + fooba)

或者:

spam = ruond(4.2)

或者:

spam = Round(4.2)

9)方法名拼写错误(导致 “AttributeError: 'str' object has no attribute 'lowerr'”)

该错误发生在如下代码中:

spam = 'THIS IS IN LOWERCASE.'

spam = spam.lowerr()

10)引用超过list最大索引(导致“IndexError: list index out of range”)

该错误发生在如下代码中:

spam = ['cat', 'dog', 'mouse']

print(spam[6])

11)使用不存在的字典键值(导致“KeyError:‘spam'”)

该错误发生在如下代码中:

spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'}

print('The name of my pet zebra is ' + spam['zebra'])

12)尝试使用Python关键字作为变量名(导致“SyntaxError:invalid syntax”)

Python关键不能用作变量名,该错误发生在如下代码中:

class = 'algebra'

Python3的关键字有: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

13)在一个定义新变量中使用增值操作符(导致“NameError: name 'foobar' is not defined”)

不要在声明变量时使用0或者空字符串作为初始值,这样使用自增操作符的一句spam += 1等于spam = spam + 1,这意味着spam需要指定一个有效的初始值。

该错误发生在如下代码中:

spam = 0

spam += 42

eggs += 42

14)在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)(导致“UnboundLocalError: local variable 'foobar' referenced before assignment”)

在函数中使用局部变来那个而同时又存在同名全局变量时是很复杂的,使用规则是:如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量。

这意味着你不能在定义它之前把它当全局变量在函数中使用。

该错误发生在如下代码中:

someVar = 42

def myFunction():

print(someVar)

someVar = 100

myFunction()

15)尝试使用 range()创建整数列表(导致“TypeError: 'range' object does not support item assignment”)

有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式。然而,你需要记住 range() 返回的是 “range object”,而不是实际的 list 值。

该错误发生在如下代码中:

spam = range(10)

spam[4] = -1

也许这才是你想做:

spam = list(range(10))

spam[4] = -1

(注意:在 Python 2 中 spam = range(10) 是能行的,因为在 Python 2 中 range() 返回的是list值,但是在 Python 3 中就会产生以上错误)

16)不错在 ++ 或者 -- 自增自减操作符。(导致“SyntaxError: invalid syntax”)

如果你习惯于例如 C++ , Java , PHP 等其他的语言,也许你会想要尝试使用 ++ 或者 -- 自增自减一个变量。在Python中是没有这样的操作符的。

该错误发生在如下代码中:

spam = 1

spam++

也许这才是你想做的:

spam = 1

spam += 1

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”)

该错误发生在如下代码中:

class Foo():

def myMethod():

print('Hello!')

a = Foo()

a.myMethod()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

int转unsigned int_谢劲课题组在基于锰催化的转金属化基元反应取得系列进展

本文来自微信公众号:X-MOLNews用廉价的过渡金属催化剂替代贵金属催化剂是解决未来自然资源问题紧缺的一个很好选择。锰是地壳中含量排第三位的过渡金属,价格便宜,环境危害小。但由于其较低的催化活性,锰催化参与的许多金属有机化学…

python的作者为什么要创造python_为什么要学习Python?老男孩Python开发

在众多人的脑海中,Python无非就是一门编程语言而已,并没有什么特色,但是提及学习编程大部分人都会推荐Python,为什么?今天老男孩教育就给你说说学习Python的四大理由吧。首先先来了解一下什么是Python?Python是一个高层次的结合…

东电计算机考研大概分数,2019年各学院硕士研究生拟录取名单公示

2019年电气工程学院拟录取名单.doc 540.0 KB 2019-04-09 09:40 -a--2019年化学工程学院拟录取名单.doc 169.5 KB 2019-04-09 09:17 -a--2019年机械工程学院拟录取名单.doc 63.0 KB 2019-04-05 16:57 -a--2019年计算机工程学院拟录取名单.doc 165…

pip更换镜像源_Ubuntu20.04LTS更换软件源镜像

我用的是Linux的Windows子系统下的Ubuntu20.04LTS版本,这个版本很重要!首先是备份一下开始的源打开位置/etc/apt/sources.list备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后删除掉sources.listsudo rm /etc/apt/sources.list在目录 …

rf框架的缺点_2017热门开源自动化测试框架优缺点对比

原标题:2017热门开源自动化测试框架优缺点对比时间一晃已来到 2017 年的最后一个季度,TestProject 对比了在今年比较热门的 7 款开源 自动化测试框架的优缺点,以帮助你选择适合自己的测试框架。1. Robot FrameworkRobot Framework(RF)是用于验…

云教版认识计算机说课,【教学设计】第1册第1课《认识电脑交朋友》

备课时间:2017年9月3日一、教材分析本节课是省编最新版《小学信息技术》教材第一册第一课。“学一学”由三个部分组成:探寻电脑应用技术;了解电脑组成;养成良好习惯。这三个部分的知识,不仅拓展了学生的视野&#xff0…

python中模块和包是什么_Python中模块和包的概念

将所有代码放入一个py文件&#xff1a;无法维护 如果将代码分拆放入多个py文件&#xff0c;好处&#xff1a; 同一个名字的变量互不影响 模块a 模块b | | V V #a.py #b.py x 5 x str def f1(): def f1(iterable): pass pass 引用其他模块 #test.py <---------------------…

卷组删除pv_如何安全的删除Linux LVM中的PV物理卷(硬盘或分区)

情况介绍&#xff1a;一、由于硬盘或者分区的操作方式其实都一样&#xff0c;所以我这里就以分区为例。二、/home分区2.6G&#xff0c;由如下pv组成&#xff1a;/dev/sda5 100M/dev/sda6 200M/dev/sda7 300M/dev/sda8 400M/dev/sda9 500M/dev/sda10 600M/dev/sda11 500M很碎对吧…

python输入float_python – 在tensorflow中创建一个float64变量

我正在尝试进行逻辑回归,我的训练数据集来自一个numpy float64数组.我的代码看起来像, import tensorflow as tf graph tf.Graph() with graph.as_default(): examples tf.constant(mat6) # mat6 is a numpy float64 array t_labels tf.constant(labels) # labels is an a nu…

计算机操作系统英文版课后答案,计算机操作系统(第3版)课后习题答案(完整版)...

内容简介&#xff1a;计算机操作系统(第3版)课后习题答案(完整版)第一章1&#xff0e;设计现代OS的主要目标是什么&#xff1f;答&#xff1a;(1)有效性 (2)方便性 (3)可扩充性 (4)开放性2&#xff0e;OS的作用可表现在哪几个方面&#xff1f;答&#xff1a;(1)OS作为用户与计算…

免费mysql空间_php+mysql免费空间

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

宇宙人工智能计算机程序,由人工智能推理出:整个宇宙会变成一个玄计算机,宇宙是虚拟的...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼人工智能现在的计算机芯片是纳米级的&#xff0c;可简称纳米计算机&#xff0c;未来可能出现量子计算机、玄(量子由玄组成)计算机。现在看生物实质上也是纳米计算机&#xff0c;具有计算机的全部功能&#xff0c;不同生物的DNA长度…

cdn需要备案吗_车子贴改色膜需要到车管所备案吗?

改色膜至今为止已经流行很多年了&#xff0c;但还是有部分车主对于贴改色膜之后备案这个事情还不是很了解&#xff0c;对于这个就来点知识小科普吧~~首先汽车贴改色膜是合法的&#xff0c;但这个也是有前提的&#xff0c;首先汽车车身更换颜色超过30%的话&#xff0c;就需要到车…

mysql数据库中文显示_关于Mysql数据库中文显示问题

挣扎在初级Web开发&#xff0c;无论是hibernate还是基础的jdbc都要涉及到一个编码问题&#xff0c;毕竟编程这套东西是伦家外国银发明的&#xff0c;我大中华的程序猿不得不低头&#xff0c;闲言少叙。严明而言&#xff0c;3点&#xff1a;1.mysql配置文件my.ini中添加2条&…

python selenium采集速卖通_2.不苟的爬虫小教程系列:python爬虫技术栈介绍

鉴于爬虫初学者们&#xff0c;往往也是编程的初学者&#xff0c;我在这里介绍一套最常用的技术栈&#xff0c;不求多&#xff0c;只求精。 毕竟我们的目标是采集到数据&#xff0c;只要能够成功实现目标的工具就是好工具。 爬虫框架scrapy&#xff1a;该框架是scrapinghub公司开…

读算法霸权笔记03_操控与恐吓

1. 市场失灵 1.1. 探索市场失灵现象就像寻宝游戏&#xff0c;很有意思 1.2. 建立一种算法来预测这个循环出现差错——多找回的两枚硬币——的可能性并对此下注 1.2.1. 盈利模式消失了&#xff0c;或者市场中的其他人也了解了这个模式&#xff0c;先行者优势消失 1.3. 在很多…

win10看计算机属性,win10系统查看windows7版本号要比计算机属性具体的图文步骤

win10系统使用久了&#xff0c;好多网友反馈说关于对win10系统查看windows7版本号要比计算机属性具体设置的方法&#xff0c;在使用win10系统的过程中经常不知道如何去对win10系统查看windows7版本号要比计算机属性具体进行设置&#xff0c;有什么好的办法去设置win10系统查看w…

mysql执行计划查看_查看Mysql执行计划

1、MySQL语法MySql提供了EXPLAIN语法用来进行查询分析&#xff0c;在SQL语句前加一个”EXPLAIN”即可。默认情况下Mysql的profiling是关闭的&#xff0c;所以首先必须打开profilingset profiling"ON"mysql> show variables like "%profi%";------------…

计算机社团活动总结ppt,社团活动总结PPT

九月迎新生&#xff0c;大学社团活动再次活跃起来。为了做好今年的活动&#xff0c;有必要对去年的社团活动做下反思总结。下面是出国留学网小编为您整理提供的大学社团活动总结PPT模板及正文预览&#xff0c;欢迎查看。PPT正文预览&#xff1a;大学社团活动总结xxxx年对活动与…

myeclipse怎么创建jframe类_创建型-建造者模式

一个对象创建的时候&#xff0c;需要各种初始化化&#xff0c;有一套复杂的创建流程&#xff0c;如果这些流程散布在系统各个地方的话&#xff0c;会越来越难以维护&#xff0c;因此建造者模式就是把一套复杂的创建某个具体产品的流程&#xff0c;管理起来。定义&#xff1a;将…