【python基础】

1、

2、

3、

其中if __name__ == '__main__':这句估计很多和我一样的初学者都是不求甚解。 这里作一下解释: 

1:__name__是一个变量。前后加了双下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。 2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。 3:import的时候是要执行所import的模块的。 4:__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。

1. 如果模块是被导入,__name__的值为模块名字

2. 如果模块是被直接执行,__name__的值为’__main__’

 4、

str.endswith(suffix[, start[, end]]) 用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。
可选参数"start"与"end"为检索字符串的开始与结束位置。

 5、

 Python变量作用域查找遵循LEGB原则: 变量的查找顺序:Local 局部变量->Enclosing 外部嵌套作用域->Global 全局作用域->Built-in 内置模块作用域

6、

在Python3中,str.find(str, beg=0, end=len(string)) 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1

7、

官方解析:

在Python3中list.remove(obj)移除列表中某个值的第一个匹配项, list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),所以 lists.remove(1) 执行之后 lists = [1,2,3,4,5,6],再执行 lists.extend([7,8,9]) 后lists = [1,2,3,4,5,6,7,8,9]

8、

python中的标识符:

1)第一个字符必须是字母表中字母或下划线 _ 。 2)标识符的其他的部分由字母、数字和下划线组成。 3)标识符对大小写敏感。 4)不可以是python中的关键字,如False、True、None、class等。

注意:self不是python中的关键字。类中参数self也可以用其他名称命名,但是为了规范和便于读者理解,推荐使用self。

9、

  • __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
  • __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。

即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。

10、

Python参数传递采用的是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典 或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能 直接修改原始对象——相当于通过“传值”来传递对象。

11、

如果是索引访问,会导致IndexError,但本体考的是切片,切片操作时如果索引越界不会导致IndexError,只是返回一个空序列,这里返回空列表 []。

12、 

 13、

 14、

  • Python 是弱类型脚本语言,变量就是变量,没有特定类型,因此不需要声明
  • 但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 用 del 语句可以释放已创建的变量(已占用的资源)。

15、

# py3 访问不存在的索引或key:
#    字典:key访问报KeyError,get访问默认返回None
#    列表、元组、字符串:IndexError

# py3 切片越界(索引为自然数情况):
#    列表:
#       start越界:返回[] 空列表
#       end越界:返回原列表浅拷贝
#       start、end均越界:[] 空列表
#    元组:
#       start越界:返回() 空元组
#       end越界:返回原元组
#       start、end均越界:() 空元组
#    字符串:
#       start越界:返回'' 空字符
#       end越界:返回原字符串
#       start、end均越界:'' 空字符

16、

17、

 18、

19、

20、set 类型的特性是会移除集合中重复的元素

21、

 官方解析:

使用sorted()进行排序会生成新的序列,生成的新序列和原序列id值必然不同。对于可变对象,sorted()进行排序时原序列也发生变化,而本题A中用lis保存了生成的新序列,因此AD选项输出结果均为False;对于+=操作,如果是可变对象,则操作前后序列的id值不变,如果是不可变对象,则操作前后序列的id值改变,故B正确。

22、python3中,divmod将除法运算和取余运算结合在一起,结果返回一个tuple(元组)(商和余数)

23、

24、

  • 使用recvfrom()接收TCP数据                 udp! socket.recv是tcp协议,recvfrom是udp传输 返回值是(data,address)
    其中data是包含接收数据的字符串,address是 发送数据 的套接字地址。
  • 使用getsockname()获取连接套接字的远程地址     自己的! 返回套接字自己的地址 
    通常是一个元组(ipaddr,port)
  • 使用connect()初始化TCP服务器连接 连接到address处的套接字。
    一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
  • 服务端使用listen()开始TCP监听
    

 25、

 

dict的pop是删除指定key的键和值,如果没有指定,则返回default,就会报错;

而list的pop是删除最后一个值并返回。

 26、

27、Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

28、

29、切片不会导致越界,但通过下标访问会越界。

30、

31、

count()函数没有匹配到对象返回0

index()函数没有匹配到对象报错value Error

find()函数没有匹配到对象返回-1

in 没有匹配到对象返回false

32、

如果你希望强迫调用者使用某些参数,且必须以关键字参数的形式传参,那么你只需要在所需位置的前一个位置放置一个*。 def f1(a, *, b, c): return a + b + c 对于上面这个函数而言,调用时参数a可以任意值, 但b,c参数一定要以关键字参数的形式传参,如f1(1, b=4, c=5),否则将会报错。

33、

34、

在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量、可以作为元素添加到集合对象中、可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的。

35、

import copy
a = [1, 2, 3, 4, ['a', 'b']] 
b = a     # 引用,除非直接给a重新赋值,否则a变则b变,b变则a变
c = copy.copy(a)   # 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变
d = copy.deepcopy(a) #深拷贝,完全拷贝,完全独立于原对象,a变也不变
a.append(5) # 改变父对象

a[4].append('c')  #改变父对象中的 ['a', 'b']子对象

36、"r","w","a","rb","wb","ab":指定对文件打开方式即文件内容操作方式,即只读,可写,追加,二进制读,二进制写,二进制追加

37、

string.find(str, beg=0, end=len(string)),检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1,因此第一个返回结果为 12

string.rfind(str, beg=0,end=len(string) ),类似于 find() 函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1,第二个返回结果为 15

38、

在Python3中对于数组、字符串的 * 表示对原数组、字符串的复制,所以 a * 2 表示对列表a的复制,结果为 [2,3,2,3]

而且在Python3中字符串、列表和元组支持此种方法复制数据,字典和集合不行

39、

strs.strip('ab')

'ab'表示的是一种集合,这里是指:[ab,ba,aa,bb,aaa,bbb,abb,baa]等;

strs两端,只要是包含了上述集合中的任何一个,都删除。

40、

41、

Python 中字符串的前导 r 代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。

最典型的例子,如要输出字符串 \n,由于反斜杠的转义,因此一般的输出语句为:

print "\\n"

这里的 \\ 将被转义为 \ 。而采用原始字符串输出时,则不会对字符串进行转义:

print r"\n"

 42、

在Python3中,list.index(obj)表示从列表中找出某个值第一个匹配项的索引位置,且列表的索引是从 0 开始的,所以返回 2 所在的第一个索引为 1

43、

在python3中,dict.copy()表示返回一个字典的浅复制,并且复制后的新的字典元素变化不会影响原来的字典

 44、

关于python中的复数:

1.表示复数的语法是real + image j

2.实部和虚部都是浮点数

3.虚部的后缀可以是 “j” 或者 “J”

4.复数的 conjugate 方法可以返回该复数的共轭复数。

45、

 官方解析:

使用列表生成式生成的列表a=[['1', '2'], ['1', '2']],列表的两个元素虽然也是列表,但它们是不同的引用,修改其中的一个列表元素不影响另一个列表元素;而使用*生成的列表b=[['1', '2'], ['1', '2']] ,列表的两个列表元素指向同一个地址,修改时互相影响。

 46、

官方解析:

__slots__属性用来限制实例对象的属性,实例对象的实例属性最多只能在__slots__属性值的范围内。如果子类没有定义__slots__属性,则不会继承父类的__slots__属性,如果子类定义了__slots__属性,则子类对象允许的实例属性包括子类的__slots__加上父类的__slots_。

 47、python搜索模块的顺序为:内建模块>当前路径,即执行Python脚本文件所在的路径>环境变量中的PYTHONPATH>python安装路径

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值