python3 之初学者常犯的5个错误

Posted zxpo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 之初学者常犯的5个错误相关的知识,希望对你有一定的参考价值。

1. Creating a copy of dictionary or lists.

Whenever you need to make a copy of a dictionary or list, do not simply use the assignment operator.

Right way: Use the copy()  or deepcopy()  method. 

2. Dictionary keys.

Remember Boolean class is the subclass of Integer. Integer equivalent of True is 1 and that of False is 0. Hence value of key 1 is overwritten

3. Updating lists or dictionaries.

 Most the sequence object methods like sort, update, append, add etc works in place to increase performance by avoiding to create a separate copy un-necessarily.

Do not try to assign the output of such methods to variable. 

In some cases, python try to reuse the existing immutable objects. String interning is one such case

>>> a = "gmail"
>>> b = "gmail"
>>> a is b
True

 All strings of length 1 are interned. String having anything except ASCII characters, digits and underscore in them are not interned.

Let‘s see. 

>>> a = "@gmail"
>>> b = "@gmail"
>>> a is b
False
Also remember ==  is different than is  operator. ==  checks if values are equal or not while is  checks if both variable are pointing to same object. 

5. Default arguments are evaluated only once.

Consider below example.

def func(a, lst=[]):
    lst.append(a)
    return lst

print(func(1))
print(func(2))

 

What do you think will be the output of above two print statements?

Lets try to run it.

>>> def func(a, lst=[]):
...     lst.append(a)
...     return lst
... 
>>> print(func(1))
[1]
>>> print(func(2))
[1, 2]

 






以上是关于python3 之初学者常犯的5个错误的主要内容,如果未能解决你的问题,请参考以下文章

数据库新手常犯的5个错误

程序员常犯的这些错误,你中招了没?

Java程序员最常犯的错误盘点之Top 10

Java规则之条件语句中做空判断时使用||和&&常犯的错误

11个程序员最常犯的MySQL错误(PHP开发)

Java程序员常犯的10个错误