Python Flashcards

1
Q

【z3】

a = -6
32位的hex怎么表示

A

from z3 import *
a = BitVecVal(-6,32)
print(a.sexpr())

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

【Python基础】

写出异常模板

A
try:
    #主代码块
    pass
except KeyError as e:
    #异常时执行该块
    pass
except Exception as e:
    pass
else:
    #如果没有任何异常,执行到这
    pass
finally:
    #无论异常与否,最终执行该块
    pass
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

【z3】

print eq(x+y,y+x)返回什么

A

False
因为AST node的哈希值不同
(表达式,种类,声明被称为AST)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

【Python基础】

定义一个类的格式是什么

A
class 类名:
    def 方法1(self,参数):
        pass
    def 方法2(self,参数):
        pass

self:形式参数,python内部自动传递
obj = 类名()
当执行obj.func1()时,self就是obj

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

【Python基础】

class Animal:
    def \_\_init\_\_(self):
        print('A'的构造方法)
        self.tp = '动物'
class Cat(Animal):
    def \_\_init\_\_(self):
        print('B的构造方法')
        self.name = '猫'

问:猫怎样才能继承Animal的__init__以便可以访问tp
额外继承基类的init方法的公式是什么

A
class Animal:
    def \_\_init\_\_(self):
        print('A'的构造方法)
        self.tp = '动物'
class Cat(Animal):
    def \_\_init\_\_(self):
        print('B的构造方法')
        self.name = '猫'
        super(Cat,self).\_\_init\_\_()

公式:
super(自身类名,self).__init__()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

【正则表达式】

\s代表什么

A

\s代表空白字符

[\t\r\n\f\v]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

【z3】
Ben在等红绿灯,当灯变绿时,Ben从0开始以6m/(s**2)加速4.1秒,求这段时间的汽车位移。

提示公式:
距离 = 初速时间+(加速度时间**2)/2
末速 = 初速+加速度*时间

A
from z3 import *
s = Solver()
d,a,t,v_i,v_f = Reals('d a t v_i v_f‘)
equations = [d == v_i*t+(a*t**2)/2 , v_f == v_i+a*t]
known = [v_i == 0 , t == 4.1 , a == 6]
s.add(equations+known)
set_option(rational_to_decimal)
s.check()
s.model()[d]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

【正则表达式】

[a-z]表示什么

A

[a-z]表示a到z中任意一个字母

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

【正则表达式】

$表示什么

A

匹配以xx结尾的

re. findall(‘hijack$’,’sldkjfshijacksdkjfh”)返回[ ]
re. findall(‘hijack$’,’sldkjfshijack”)返回[‘hijack’]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

【Python基础】

如果我想要用户输入的字符为不可见要怎么做

A

import getpass
username = imput(‘your name:’).strip()
password = getpass.getpass(‘your password’:)

会造成好像没有输入的幻觉

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

【Python基础】

range(1,6)包括6吗?
random.randint(1,6)包括6吗?

A

rane(1,6)不包括6
只有random.randint()包括结束本身
其他都不包括结束本身

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

【正则表达式】

\w代表什么?

A

\w代表单词字符

[a-zA-Z0-9_]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

【正则表达式】

re.findall(r’abc\b’,’abcskdjabcfh’)中的r是什么意思,为什么要加r

A

r的意思是raw_string原生字符串,正则中建议用raw

python有自己的关于\的规则,如\n,\t,\r
正则有自己的关于\的规则,如\w,\d

r使引号内的\失去python的\规则,保留正则的\规则

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

【Python基础】

a = [1,2]
b = [3,4]
a+b 是多少

A

[1,2,3,4]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

【z3】

a = BitVec(‘a’,32)
经过一些solve得出的结果:m[a] = 842216501
想要把向量转换为python的整数型怎么做?

A

思路:位向量转换为16进制,再转换为十进制

m[a].sexpr()返回:”#x32333435”,
int(m[a].sexpr().replace(‘#’,’0’),16)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

【Python基础】

a = [1,2,3]
print(a*8)
显示什么

A

[1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

【Python基础】

ditc = {‘a’:’x’,’b’:’y’,’c’:’z’}怎样清空字典

A

dict.clear()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

【Python基础】

member = [‘a’ , 8 , 3.14 , ‘b’ , [1,2,3]]
删除元素’b’的三种方法

A

member.pop(3)
member.remove[‘b’]
del member[3]
pop如果没有参数,就是弹出最后1个元素

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

【Python基础】

dict{}

dict. fromkeys((1,2,3))得到什么?
dict. fromkeys((1,2,3),’num’)得到什么?

A

{1:none , 2:none , 3:none}
{1:’num’ , 2:’num’ , 3:’num’}

dict本身不变,仍然是()

fromkeys()函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

【z3】

我想自定义一个数据类型Role,里面有goodman,badman,normalman

A

from z3 import *

Role,(goodman,badman,normalman) = EnumSort(‘Role’,(‘goodman’,’badman’,’normalman’))

a = Const(‘a’,Role)
solve (a ! = goodman , a !=badman)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

【z3】

我想建立一个z3py的整数型数组,所有的元素都是1

A

a,i = Ints(‘a i’)

AllOne = K(IntSort(),1)
solve(a == AllOne[i])

K(s,v)返回一个将s的任意值映射到v的数组

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

【z3】

请定义列表(5个元素)
整数型列表X
实数型列表Y
布尔型列表Z

A

from z3 import *

X = IntVector('x',5)
Y = RealVector('y',5)
Z = BoolVector('z',5')
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

【正则表达式】

[\d]表示什么

A

[\d]表示任意一个数字

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

【正则表达式】

\W表示什么?

A

\W表示非单词字符

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
【Python基础】 dict = {'k1':'v1' , 'k3':'v3'} b = {'k2','v2'} 说出dict.update(b)的作用
dict变为{'k1':'v1' , 'k2':'v2' , 'k3':'v3'} 更新update():有key覆盖,无key添加 所以如果再来一次: c = {'k1':'hello'} dict.update(c) 则dict变为{'k1':'hello' , 'k2':'v2' , 'k3':'v3'}
26
【z3】 怎样设置结果保留小数点后2位 怎样设置结果用10进制表示
set_option(precision = 2) set_option(rational_to_decimal = True)
27
【Python基础】 zip(['a' , 'b'] , ['c','d'])的结果是什么
[('a' , 'c') , ('b' , 'd')]
28
【z3】 Select(a,i)是什么意思
等价于a[i]
29
【Python基础】 ``` a = 6 b = a 如果修改a = 7的话,b = ? ```
b还是6,因为另外出了个空间装7赋给a
30
【Python基础】 x = ['a','b','c','d'] 反转x 这个反转函数是改变本身还是建立副本?
x.reverse() | 改变本身
31
【Python基础】 dict = {'k1':'v1' , 'k2':'v2' , 'k3':'v3'} 如何得到dict的键列表 如何得到dict的值列表 如何得到dict的键值对列表
dict. keys() 返回['k3' , 'k2' , 'k1'] dict. values() 返回['v3' , 'v2' , 'v1'] dict. items() 返回[('k3','v3') , ('k2','v2') , ('k1','v1')]
32
【Python基础】 列表num1 = [1,2,3,2,1]怎样去重复
num1 = list(set(num1))
33
【z3】 ``` 请定义变量: x:整数 y:实数 z:布尔型 w:模拟32位寄存器,定义一个32位的位向量 ``` 批量定义实数a,b,c 批量定义整数d,e,f 批量定义位向量:g,h
``` from z3 import * x = Int('x') y = Real('y') z = Bool('z') w = BitVec('w',32) ``` ``` a,b,c = Reals('a b c') d,e,f = Ints('d e f') g,h = BitVecs('g h',32) ```
34
【z3】 ``` 求解器怎么表示 怎样添加约束 怎样查看求解器的断言表达式列表 怎样查看是否有解 s.push()......s.pop()什么意思 求解器怎样查看x的值 ```
``` s = Solver() s.add(各种约束) s.assertions() s.check() 求解前一定要check一下,否则无法求解 ``` 共享之前的约束表达式,在push()和pop()中间加入自己的表达式及其他命令。 pop()后再删除自己的约束 s.model[x]
35
【Python基础】 dict = {'k1':'v1' , 'k3':'v3'} 请说出dict.set.default()的作用
dict. setdefualt('k2')之后dict变成{'k1':'v1' , 'k2':None , 'k3':'v3'} dict. setdefault('k4','v4')之后dict变成{'k1':'v1' , 'k2':None , 'k3':'v3' , 'k4':'v4'} setdefault()不会改变已经存在的键的值,智慧增加不存在的键的值。 所以如果再来一次dict.setdefault('k1','hello'),dict不会改变。
36
【Python基础】 x = ['a','b','c','d'] b的index是多少 (不要回答3,使用函数表示)
x.index('b') 查索引函数x.index('a',2,4) 后两个参数是范围,不包括4本身
37
【z3】 证明:"两个数按位异或结果小于0"与"两个数符号相反"等效
from z3 import * x = BitVec('x',32) y = BitVec('y',32) n1 = x^y <0 n2 = Or(And(x<0,y>0),And(x>0,y<0)) prove(n1 == n2)
38
【正则表达式】 \D代表什么
非数字 | [^0-9]
39
【Python基础】 随机选择 语文,数学,英语
import random | x = random.choice(['语文' , '数学' , '英语'])
40
【Python基础】 模块commons.py的内容为: name = 'hijack' 要求判断模块中有没有name变量
import commons i = hasattr(commons,'name')
41
【Python基础】 如何使以下两个列表组成一个字典? key = [1,2] value = ['a','b']
d = dict([key,value])
42
【Python基础】 封装是什么意思? 封装的使用场景是什么?
类+(): 自动执行类中的__init__方法,创建了一个对象。 在__init__方法中执行具体封装的操作,创建并封装的过程叫初始化。 封装的使用场景: 1、当同一类型的方法具有相同参数时 2、把类当作模板,创建多个对象时
43
【正则表达式】 [^a-z]表示什么?
除了a-z以外的任意一个字符
44
【z3】 (x+y)**3 把这个表达式打开来,表示成x*x*x + 3*x*x*y + 3*x*y*y +y*y*y这种形式,要怎样做?
``` simplify((x+y)**3,som = True) #som = True表示以单项式形式表示 ``` #mul_to_power = True把a*a*a形式转换为a**3的形式
45
【Python基础】 集合a = {'e' , 'h' , 'l' , 'o'} 如何添加一个元素'w' 如何再去掉这个元素'w'
a. add('w') | a. remove('w')
46
【正则表达式】 { }表示什么?
表示数量 {3}匹配3次 {3,5}匹配3次或4次或5次
47
【Python基础】 import requests要求用字符串的形式找到requests的get函数,并执行
import requests f = getattr(requests,'get') f('http://baidu.com') #函数名加个括号就是执行
48
【Python基础】 我想把当前python主文件同级目录下的lib增加到环境变量里面,以便其他人可以使用,该怎么做
import sys import os sys.path.append(os.path.join(os.path.dirname(__file__),'lib'))
49
【z3】 Store(a,i,v)是什么意思?
返回一个数组副本,只是i的位置有了数值v | 并不改变原有的数组a
50
【z3】 怎样证明两个断言表达式等价? n = 断言表达式1 m = 断言表达式2
prove(m == n) 成功则proved 失败则会列出一个返例
51
【z3】 请定义z3常量: b = -1(按照16位位响亮定义)
from z3 import * | b = BitVecVal(-1,16)
52
【Python基础】 ``` 模块s2.py内容为: class Foo: def __init__(self,name): self.name = name def show(self): print('show') 如何通过字符串创建Foo的实例 ```
``` m = __import__('s2',fromlist = True) class_name = getattr(m,'Foo') obj = class_name('hijack') #类名加括号得到对象 val = getattr(obj,'name') #返回hijack ```
53
【z3】 Implies(p,C)是什么意思
如果p成立,则C成立
54
【正则表达式】 +表示什么
表示数量 | 1或者多个
55
【Python基础】 __dict__是干什么用的
``` 以字典的形式返回对象的所有成员 class Foo: ...... obj = Foo() print(obj.__dict__) #返回对象里的所有成员 print(Foo.__dict__) #返回类里的所有成员 ```
56
【Python基础】 删除模块中的全局变量或者函数(只是在内存里修改,对真正的原模块无影响)
delattr(commons,'name')
57
【z3】 五分之二怎么表示 把3转换为实数 16的开平方怎么表示? 求和是怎么表示?
Q(2,5) 把3转换为实数: a = IntVal(3) b = ToReal(a) Sqrt(16) sum() #里面参数必须是可迭代的,作用是把可迭代全部相加
58
【Python基础】 ``` 继承优先级考察: class A: def bar(self): print('bar') self.f1() ``` ``` class B(A): def f1(self): print('B') ``` ``` class C: def f1(self): print('C') ``` ``` class D(C,B): pass ``` d1 = D() d1.bar()会输出什么
bar | C
59
【Python基础】 静态字段,静态方法,类方法,普通字段,普通方法: 那些成员是通过类访问的?那些是通过对象访问的?
通过类访问的:静态字段,静态方法,类方法 通过对象访问的:普通字段和类中的普通方法
60
【Python基础】 集合是什么? 创建集合有哪两种方式?
``` 集合中的元素是唯一的,无序的,无索引 创建集合: a = {'x','y','z'} 或 a = set(['x','y','z']) set()里面只要是可迭代的就行, 如果是a = set('hello')则a为{'e','h','l','o'} ```
61
【Python基础】 commons.py文件内容为: name = 'hijack' 要求通过字符串的形式去模块中找到name变量
m = __import__('commons') | getattr(m,'name')
62
【Python基础】 根据字符串形式倒入模块 如果模块在某个文件夹下呢,比如:commons模块在lib文件夹下
m = __import__('lib.commons',fromlist = true)
63
【正则表达式】 元字符有哪些
^$\[ ]?.+*( ) |{ }
64
【Python基础】 __name__是干什么的
``` 只有执行当前py文件时,__name__ = "__main__" 如果被当作模块使用,则__name__ = 模块名 ```
65
【Python基础】 dict = {'k1':'v1' , 'k2':'v2' , 'k3':'v3'} dict.get('k2','没有') dict.get('k4','没有') 分别返回什么?
v2 没有 并不会改变dict,只是查找用的,找不到就返回‘没有’
66
【正则表达式】 8-11位的数字,规则该怎么写
^\d{8,11}$
67
【正则表达式】 至少8位的数字,规则该怎么写
^\d{8,}$
68
【正则表达式】 re.findall('hij.ck','sldfkhijacksdlkjf')返回什么
['hijack'] | .表示任意一个字符(换行符除外)
69
【z3】 ``` n = 一个断言表达式 怎样查看一个表达式的子表达式个数 怎样查看断言表达式的子表达式 怎样查看第一个子表达式 怎样查看第二个子表达式 怎样查看两个子表达式的连接符号 ```
n. num_args() n. children() n. arg(0) n. arg(1) n. decl() #如n = x+y>2返回>
70
【Python基础】 ``` class Foo: xo = 'xo' __ox = 'ox' def __init__(self): pass ``` ``` def __a(self): print('i am a') ``` ``` def fetch(self): print(Foo.__ox) #合理吗 self.__a() #合理吗 ``` pritn(Foo.xo) #合理吗 print(Foo.__ox) #合理吗 obj = Foo() obj.fetch() #合理吗
``` class Foo: xo = 'xo' #静态字段 __ox = 'ox' #__是私有成员修饰符,只有Foo的成员可以访问 def __init__(self): pass ``` ``` def __a(self): print('i am a') ``` def fetch(self): print(Foo.__ox) #合理 self.__a() #合理 对于私有成员,必须在内部间接地访问 pritn(Foo.xo) #合理 print(Foo.__ox) #不合理,只有内部成员能够访问 obj = Foo() obj.fetch() #合理
71
【Python基础】 __call__()方法怎么使用
对象后面加小括号默认执行__call__()方法 ``` class Foo: def __init__(self): print('init') def __call__(self): print('call') ``` ``` r = Foo() #执行__init__方法,获得一个对象,打印init ``` ``` r1 = Foo()() #在对象后面加括号,执行__call__方法 打印: init call ```
72
【正则表达式】 *表示什么
表示数量,0个或多个 因此如果规则是'hiajck*' 那么'hijac'也能匹配到
73
【Python基础】 dict = {'k1':'v1' , 'k2':'v2' , 'k3':'v3'} 如何删除'k2':'v2'键值对
dict.pop('k2')
74
【Python基础】 x = ['d','c','b','a'] 请按顺序排列 这个函数是改变本身还是创建副本
x.sort() | 改变本身
75
【正则表达式】 ^开头表示什么
^hijack 表示以hijack开头的 | [^a-z] 表示非a-z的任意一个字母
76
【Python基础】 怎样查看一个对象obj所属哪个类?
print(type(obj))
77
【Python基础】 怎样查看模块搜索路径
import os | print(sys.path)
78
【正则表达式】 ?表示什么
表示数量,0个或1个
79
【Python基础】 x = ['a','b','c','d'] x[1:3]为?
['b','c']
80
【Python基础】 dict = {'k1':'v1' , 'k2':'v2' , 'k3':'v3'} for i in dict: print(i)会显示什么?
k3 k2 k1 in在字典里查找的是键
81
【正则表达式】 判断一个字符串是否全部为数字,规则该怎么写
^\d+$
82
【正则表达式】 \b代表什么
用于想匹配单词的时候,比如想匹配is,而不是rise 只要在is前后加上\b即可 re.findall(r'\babc\b','abc sdkkjdhsfabc')返回前面的abc
83
【z3】 ForAll(x,x>0)是什么意思? Exits(x,x>0)是什么意思?
对于所有x,都满足x>0 | 存在一个x,使得x>0
84
【Python基础】 要求以字符串形式在模块commons中创建一个函数func1 lambda a:a+1
m = __import__('commons') | setattr(m,'func1',lambda a:a+1)
85
【正则表达式】 re.findall('a[bc]d',kabcdljabdlfacdls')返回什么?
['abd','acd'] | [ ]只匹配字符集中的一个字符
86
【正则表达式】 非贪婪模式和贪婪模式的关键在哪里?
在于? re. findall(r'a(\d+?),'a23b')返回['2'] re. findall(r'a(\d+),'a23b')返回['23']
87
【Python基础】 集合a = {1,2,3,4,5} 集合b = {4,5,6,7,8} 如何取并集? 如何取交集?
``` 并集:c = a | b 交集:c = a & b ```
88
【Python基础】 __file__是干什么的?
__file__包括本身文件名在内的路径 找自身所处目录: os.path.dirname(__file__) 上级: os.path.dirname(os.path.dirname(__file__)) 再上级: os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
89
【正则表达式】 \S代表什么
非空白字符
90
【Python基础】 __bultins__是什么意思
内置函数在__builtins__里面
91
【正则表达式】 反斜杠\在正则表达式中有哪三种作用?
``` 1、去掉符号的特殊功能:\^ 2、给普通字母特殊功能:\s 3、懒人专用,表示第几组规则,从1开始算起 如: re.search(r'(alex)(eric)com\2','alexericcomeric') 返回'alexericcomeric'这里面的\2就代表eric,偷懒用的 ```
92
【正则表达式】 \d代表什么
数字[0-9]
93
【Python基础】 ``` class Provice: country = 'China' ``` ``` @staticmethod def xo(arg1,arg2): print('xo') ``` ``` @classmethod def xxoo(cls): print('xxoo',cls) ``` ``` def __init__(self.name): self.name = name ``` ``` def show(self): print('hello') 请说出都是什么方法或字符 ```
``` class Provice: country = 'China' #静态字段 ``` ``` @staticmethod #静态方法 def xo(arg1,arg2): print('xo') ``` ``` @classmethod #类方法 def xxoo(cls): print('xxoo',cls) ``` ``` def __init__(self.name): self.name = name #普通字段 ``` ``` def show(self): #普通方法 print('hello') ```
94
【Python基础】 __doc__是干什么的
py文件的注释自动存到这个全局变量里面
95
【z3】 ``` x = Int('x')的另一种写法是什么? a,b = Bools('a b')的另一种写法是什么? ```
x =Const('x',IntSort()) | a,b = Consts('a b',BoolSort())
96
判断一个字符串是否是9位数字,规则该怎么写?
^\d{9}$
97
【Python基础】 member = ['a' , 8 , 3.14 , [1,2,3]] 把‘d'添加到member的最后 把['e','f']添加到最后 把'g'插入到2号索引位置
member. append('d') member. extend(['e','f']) member. insert(2,'g')
98
【Python基础】 __package__是干什么的
from bao import mokuai print(mokuai.__package__) 打印bao