Python初学者常见错误问题汇总

Posted guran0823

tags:

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

技术图片

1、在客户端和服务端如何传递数组?

答:在客户端和服务端可以使用json进行数据传输。在客户端把数据转换成json字符串,然后使用POST方法发送给服务端。 服务端收集到数据之后,使用json.loads()方法,解析json数据。 返回数据也使用这样的机制。这就完成了数据从客户端到服务端的交互。

 

2、使用Mac、Windows和Linux系统有区别么?
答:从学习Python基础知识的角度来说,是没有区别的。 搭建开发环境和开发工具会有区别。

 

3、为什么看着语句正常,报告SyntaxError :invalid character in identifier ?
答:注意使用的逗号和冒号,都要使用英文的。 因为中文和英文在这两个符号表示的时候,看上去差不多,所以在写这两个符号的时候,一定要特别注意。

 

4、为什么使用类的成员函数时,会报告参数数量不对?
答:这是因为类的成员函数,第一个参数永远是指向对象的self参数。在函数调用时,系统会自动把对象作为第一个参数传递给函数。所以在调用函数时,我们需要提供的参数是从第二个参数开始的。

 

5、错误信息的查看

技术图片

 

 

在发生报错时,一定要注意错误的提示信息。如上图所示,提示了三方面的信息:
1、错误发生在test.pyt文件的第12行

2、向上的小箭头,说明错误发生在这一行的具体位置。

3、最后一行,提示错误原因。

另外还要注意,错误提示只是解释器认为错误发生的位置。有的时候,上一行的错误,会引起下一行报错。应该注意这个情况。

 

6、报错ModuleNotFoundError, No module named ‘xxxxx’. 如下图所示:
技术图片

 

 

答:翻译成中文意思是没有名字叫做’xxxx’的模块。
主要问题可能来自于三个方面:
a、模块名字有误。 请注意模块名字是区分大小写的,请确认模块名书写正确。
b、模块确实是没有安装。 使用pip 安装该模块。
c、模块安装了,但是系统没有找到。 系统会从一系列的目录中查找给定名字的模块。 如果安装模块的路径没包含这些目录中,系统就找不到该模块。
解决方法可参考:https://blog.csdn.net/ling_mochen/article/details/79314118

 

7、报错,显示文件找不到(No such file or directory: xxxx),如下图所示
技术图片

 

 

答:明明要读取的文件和代码在同一个目录下,为什么显示没有这个文件呢?

这里涉及到几个知识点:

a、要分清楚两个概念:文件自己的路径和系统的当前路径。

比如:我们有一个python文件 C:pythonsub1 est.py. 这个路径叫做文件的路径,这个路径只要是文件不移动,就是固定的。

当前路径是指进入命令行之后,所在的路径。比如我们进入c:python这个文件夹,那么c:python 就是当前路径。如果进入C:pythonsub1, C:pythonsub1 就是当前路径。所有可以看到,当前路径是可以随意切换的。 使用IDE时,当前路径不一定是文件所在的路径。

b、open函数中,如果使用的是相对路径,那么是相对于当前路径来说的。

例如要打开C:pythonsub1123.txt 。如果当前路径是C:python,那么需要open(“sub1/123.txt”)。如果当前路径是C:pythonsub1,那么open(“123.txt”)就可以了。 为了确保这个文件肯定能够被找到,可以使用绝对路径,这样就跟当前路径无关了。

c、Windows环境下,用字符串表示路径时,需要使用斜杠(/),而不是反斜杠()。因为反斜杠在python中会被识别为转义。如下所示:
技术图片

 

 

最终,使用绝对路径,并且把分隔符修改成斜杠之后,程序运行结果符合预期.

 

7.查看pip版本

答: 在命令行执行:pip show pip 或者 pip --version

 

8.为什么字符串前面有个字面r,如下图所示

技术图片

 

 

答:我们把不加r前缀的字符串成为一般字符串,而把r做前缀的字符串称为原始字符串。一般的字符串中,为了表达一些特别含义的字符,需要使用反斜杠()进行转义。比如,我们用 表示换行。 也就是说,在一般的字符串里面反斜杠()会被特别的处理。如果我们的字符串中,真的需要反斜杠怎么办? 那么只能用两个联系的反斜杠(),也就是对反斜杠转义。如果如下面这样一个路径,为了正确表达这个路径,我们需要大量的使用反斜杠。
path = ‘C:Program Filesfnordfooarazfrozzozz’
原始字符串的特点是不会对反斜杠()做任何特殊的处理,所以如果使用原始字符串,用 r’C:Program Filesfnordfooarazfrozzozz’ 就可以正确表达。

9、如下语句有什么不同?

技术图片

 

 

答:有赋值顺序的不同。
#1中,先把b的值(20)赋给了a,然后再计算 a +b ,其实就是计算两个b的和。
#2中,赋值是同时发生的,所有等号=右侧的所有变量,都保持着原来的值。即c还是10,d是20.

所以 #1中b的结果是40, #2中d的结果30.

10、为什么列表排序完之后的返回值是None ?

a = [3,2,1]
print(a.sort())  #结果为Noe

  答:首先需要明确一下,sort是一个在本地对列表进行修改的函数,并且返回值就是None。
一般我们的需要可能是:获取一个列表的排序结果,并且原来的列表保持不变。 这个时候需要用到copy方法,先创建一个新的列表,如下:

a = [3,2,1] 
b = a.copy()  #这里不能直接用 b = a ,否则 a和b会同时都变化
b.sort()
print(a) #[3,2,1]
print(b) #[1,2,3]

  

另外,也可以使用另外一个内置函数sorted()。这个函数可以操作列表,返回一个排序之后的新列表,并且保持原来的列表顺序不变。
?

11、为什么有些函数直接直接使用,而有些就要import ?
答:能直接被使用的函数,叫做内置函数。
想查看有哪些函数属于内置的,可以在命令行执行命令: dir(builtins)

举个例子, 比如你有一个衣架, 平时常穿的几件衣服,会挂在衣架上。而其他的衣服,会放到柜子里面。 平时穿衣架上的衣服,有些时候,需要从衣柜里面拿衣服穿。 这些放在衣架上的衣服,我们称之为内置衣服。

Python也一样, 内置函数就是那些基本的常用的函数。其他的函数都放在函数箱(模块)里面。 当需要使用的时候,在从函数箱(模块)里面拿出来使用。

函数箱是为了跟上面的例子对比,我自己发明的概念,准确说应该叫模块。

最后给大家分享一些小福利

技术图片技术图片

链接:

提取码:kt2v

链接容易被举报过期,如果失效了就在这里领取吧

 技术图片

 

以上是关于Python初学者常见错误问题汇总的主要内容,如果未能解决你的问题,请参考以下文章

初学Python常见异常错误,总有一处你会遇到!

python程序常见错误及执行方式

初学Python常见异常错误,总有一处你会遇到!

Python三十个常见的脚本汇总

ASP.NET MVC 应用程序初学者常见问题汇总

django 常见错误汇总