What Python 数据结构

数据结构
写代码后,可以使用Ctrl+Alt+L快捷键,就可以对整个文件的代码进行排版了

1.列表中可以添加和删除,元组不能改,列表中也可以嵌套存列表,元组,变量常用的是列表和字典,元组和列表可以相互转换
比如:
list1=[‘a’, ‘b’ ,1 , 2 ,a , [‘x’, ‘y’, [‘z’]], (‘m’, ‘n’)]
print(list1[5][2]) --> z

2.列表的增删
append 是在最后添加某个值
remove 删除掉列表的某个值,不是位置,如果有多个值,只删除一次
列表的增删
3.字典的直接赋值:直接赋值的字典的键值对会随原字典的键值对而变

list1 = {'1':1,'2':2}
list2 = list1
list1['1'] = 5  #看这个
print(list1)
print(list2)
sum = list1['1'] + list2['1']
print(sum)
list1 = {'1':1,'2':2}
list2 = list1
list2['1'] = 5   #看这个
print(list1)
print(list2)
sum = list1['1'] + list2['1']
print(sum)
{'1': 5, '2': 2}
{'1': 5, '2': 2}   #list2的值也改变了
10

4.range() 取前不取后
range(start, end, step),start:起始值;end:终值;step:步长,默认为1。

for i in range(2):
 print(i)
for i in range(4,6):
 print(i)
0
1
4
5

5.args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个 dict。
并且同时使用args和kwargs时,必须*args参数列要在kwargs前.

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

7.如果外层函数返回的是一个函数名的话,运行结果应该是:正在装饰
如果外层函数返回的是函数调用的话,运行结果是:正在装饰 正在验证权限
第一种

def w1():
    print('正在装饰')

    def inner():
        print('正在验证权限')
    return inner  ## 看这里

w1()
正在装饰

第二种

def w1():
    print('正在装饰')

    def inner():
        print('正在验证权限')
    return inner()  #看这里

w1()
正在装饰
正在验证权限

8.字典本身是可变数据类型,字典的键记住两点:
唯一:同一个字典中的键必须唯一,如果出现多个相同的键,则最新的键会被记住;
不可变:键是不可变数据类型,使用可以是int,string,float,tuple

9.sk.recv(bufsize[,flag]):接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略。

sk.recvfrom(bufsize[.flag]):与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。
sk.getsockname():返回套接字自己的地址。通常是一个元组(ipaddr,port)
sk.connect(address):连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
sk.listen(backlog):开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。

10.set 类型的特性是会移除集合中重复的元素,因此变量 nums 实际上等于:

nums = {1, 2, 3,2,3, 4}
因此数据的长度为 4

11.Python 中的 tuple 结构为 “不可变序列”,用小括号表示。为了区别数学中表示优先级的小括号,当 tuple 中只含一个元素时,需要在元素后加上逗号。 (1)会被python认为是int类型,所以必须是(1,)

12.read()读整个文件;readline()读一行;readlines()读所有行到list

13.关于python中的复数:

  •  			 a.表示复数的语法是real + image j
     			
     			b.实部和虚部都浮点数
     			
     			c.虚部的后缀可以是 “j” 或者 “J”
     			
     			d.复数的 conjugate 方法可以返回该复数的共轭复数
    

14.urllib.quote(line.decode(“gbk”).encode(“utf-16”)),请问经过该编码的字符串的解码顺序是( )?
字符串编译的过程:gbk==>unicode==>utf16==>url解码
字符串解码顺序为:url解码==>utf16==>unicode==>gbk

15.下列程序打印结果为( )

import re 
str1 = "Python's features" 
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print str2.group(1)

re模块实现正则的功能
re.match(正则表达式,要匹配的字符串,[匹配模式])

要匹配的字符串为str1 = “Python’s features”

正则表达式r’(.)on(.?) .
r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符)
()符号包住的数据为要提取的数据,通常与.group()函数连用。
.匹配单个任意字符
匹配前一个字符出现0次或无限次
?匹配前一个字符出现0次或1次
(.
)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.
?)提取的数据为str1中on右边,空格前面,即’s

.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分,.group(2) 列出第二个括号匹配部分

多个标志可以通过按位 OR(|) 来指定
re.M:多行匹配,影响 ^ 和 $
re.I:使匹配对大小写不敏感
分组:即用圆括号将要提取的数据包住,通过 .group()获取,一般和“|”结合使用

16.在Python3下:bit = input(“Enter a binary digit:”) 执行之后,实际上得到的bit是字符串形式,换句话说,第2行应该判断的是 if bit==‘0’ or bit==‘1’: 需要写成字符串形式!

17.map() 函数语法:
map(function, iterable, …)
参数
function – 函数
iterable – 一个或多个序列

a = map(lambda x: x**3, [1, 2, 3])
print(list(a))
[1, 8, 27]

18.index()方法语法:
str.index(str, beg=0, end=len(string))
参数
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。
从Hello开始数到p截止,从下标0开始数

19.下列代码运行结果是?

a = 'a'
print a > 'b' or 'c'
c

在这里插入图片描述
20.复数不能比较大小,ASCII码中小写字母>大写字母>数字
类似元组、字符串、列表这类格式,在进行两者之间的比较时,先从第一个元素开始比较 ASCII 码值大小,如果相等,则依次向后比较,如果全部相等,则比较数量大小。
ASCII 码值大小:
数字:0-9: 48-57
字母:
A-Z:65-90.
a-z: 97-122
一串数字、字符的 ASCII 码值大小取决于最后一位的 ASCII 码值,
例如:123454 的ASCII 码值为 52
4 的 ASCII码值 也为 52
ABCDA 为 65
A 也是 65

print('Hello World!')
print('__name__value: ', __name__)


def main():
    print('This message is from main function')

if __name__ == '__main__':

    main()

print_module.py的代码如下:

import print_func
print("Done!")
Hello World!  __name__ value: print_func  Done!

自己运行自己的程序,name 即为__main__
当程序当做脚本被别人调用运行时,其__name__ 为自己的模块名称,这里的print_func即被导入到print_module中当做脚本被运行时,则print_func的__name__即变为其自身的模块名。

22.解释型语言的特性有什么?
非独立:JavaScript语言依赖执行环境,对于客户端来说是浏览器,对于服务端来说是node。
效率低:执行前不需要编译,执行时才编译,因此效率低。

23.random.seed(0)作用:使得随机数据可预测,即只要seed的值一样,后续生成的随机数都一样。numpy.random.seed()函数可使得随机数具有预见性,即当参数相同时使得每次生成的随机数相同;当参数不同或者无参数时,作用与numpy.random.rand()函数相同,即多次生成随机数且每次生成的随机数都不同。

多行代码同时缩进:
选中多行代码,**按Tab,**一次缩进四个字符。

多行代码同时左移:
选中多行代码,**按Tab+shift,**一次左移四个字符
25.
函数原型为:
open(name[,mode[,buffer]])
其中name为必须, 模式(mode)和缓冲(buffer)为可选。
mode 有:
‘r’:读模式
‘w’:写模式
‘a’:追加方式
‘b’:二进制方式
‘+’:读/写模式

26.Python 中的标识符不能以数字开头,这也是普遍编程语言的通用规则。
27.python里面%d表数字,%s表示字符串,%%表示一个%;
单引号内嵌套单引号需要转义字符/;单引号内嵌套双引号不需要嵌套;
双引号内嵌套双引号需要转义字符/;双引号内引用单引号不需要转义字符;

28.最大公约数,如果能够被两数同时整除,那么就是最大公约数
29.动态和静态语言
在这里插入图片描述
30. x=(y=z+1) <<y = z + 1 的结果没有返回值,就无法赋值到 x
31. 本题考查的是字典的 get 方法
dict.get(key, default =None)
如果key在dict中则返回对应的值,否则返回default的值,其中default的值可自己指定.

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

33.字典是 Python 语言中唯一的映射类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值