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:\python\sub1\test.py. 这个路径叫做文件的路径,这个路径只要是文件不移动,就是固定的。

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

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

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

c、Windows环境下,用字符串表示路径时,需要使用斜杠(/),而不是反斜杠()。因为反斜杠在python中会被识别为转义。如下所示:
在这里插入图片描述
最终,使用绝对路径,并且把分隔符修改成斜杠之后,程序运行结果符合预期。

7、查看pip的版本

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

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

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

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

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

微信小程序:Python基础视频教程

在这里插入图片描述

欢迎加入QQ群: 872891190

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值