首页 » Web前端 » php算法毛病技巧_新手必看 17个常见的Python运行时缺点

php算法毛病技巧_新手必看 17个常见的Python运行时缺点

访客 2024-11-28 0

扫一扫用手机浏览

文章目录 [+]

1、忘却在if,for,def,elif,else,class等声明末端加 :会导致“SyntaxError :invalid syntax”如下:

if spam == 42 print('Hello!')

2、

php算法毛病技巧_新手必看 17个常见的Python运行时缺点

利用= 而不是 ==也会导致“SyntaxError: invalid syntax”= 是赋值操作符而 == 是即是比较操作。
该缺点发生在如下代码中:

php算法毛病技巧_新手必看 17个常见的Python运行时缺点
(图片来自网络侵删)

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!')

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 = 12print('I have ' + numEggs + ' eggs.')

而精确做法是:

numEggs = 12print('I have ' + str(numEggs) + ' eggs.')numEggs = 12print('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 = 0spam += 42eggs += 42

14、在定义局部变量前在函数中利用局部变量(此时有与局部变量同名的全局变量存在)导致“UnboundLocalError: local variable 'foobar' referenced before assignment”在函数中利用局部变来那个而同时又存在同名全局变量时是很繁芜的,利用规则是:如果在函数中定义了任何东西,如果它只是在函数中利用那它便是局部的,反之便是全局变量。
这意味着你不能在定义它之前把它当全局变量在函数中利用。
该缺点发生在如下代码中:

someVar = 42def myFunction(): print(someVar) someVar = 100myFunction()

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 = 1spam++

精确写法:

spam = 1spam += 1

17、忘却为方法的第一个参数添加self参数导致“TypeError: myMethod() takes no arguments (1 given)”该缺点发生在如下代码中:

class Foo(): def myMethod(): print('Hello!')a = Foo()a.myMethod()

来源:开源中国

链接:https://www.oschina.net/question/89964_62779

标签:

相关文章

袖口里的语言,解码服饰中的文化密码

服饰,作为人类文明的载体,承载着丰富的文化内涵。从古至今,服饰不仅是一种审美追求,更是身份、地位和文化的象征。袖口,作为服饰的一部...

Web前端 2024-12-29 阅读0 评论0

蟒蛇语言的魅力,探寻神秘的语言密码

自古以来,人类对未知的事物总是充满好奇。在神秘的大自然中,蟒蛇作为一种独特的生物,其独特的语言引起了人们的广泛关注。蟒蛇语言究竟有...

Web前端 2024-12-29 阅读0 评论0

bileit,探索未来交通出行新纪元

随着科技的飞速发展,汽车行业正面临着前所未有的变革。在这股浪潮中,bileit作为一种全新的出行方式,正逐渐走进人们的视野。本文将...

Web前端 2024-12-29 阅读0 评论0

苹果CMS,引领互联网内容管理的革新之路

随着互联网技术的飞速发展,内容管理系统的需求日益增长。作为全球领先的互联网企业,苹果公司凭借其强大的技术实力和市场影响力,推出了苹...

Web前端 2024-12-29 阅读0 评论0

Cdll测试,技术革新推动软件开发新纪元

随着信息技术的飞速发展,软件行业在近年来迎来了前所未有的变革。作为软件开发过程中的关键环节,Cdll测试在确保软件质量、提高开发效...

Web前端 2024-12-29 阅读0 评论0

Clubit,重塑社交互动,打造未来社区新范式

随着互联网技术的飞速发展,社交平台逐渐成为人们日常生活中不可或缺的一部分。在这个信息爆炸的时代,如何让人们在浩如烟海的信息中找到属...

Web前端 2024-12-29 阅读0 评论0