Python Flashcards
【z3】
a = -6
32位的hex怎么表示
from z3 import *
a = BitVecVal(-6,32)
print(a.sexpr())
【Python基础】
写出异常模板
try: #主代码块 pass except KeyError as e: #异常时执行该块 pass except Exception as e: pass else: #如果没有任何异常,执行到这 pass finally: #无论异常与否,最终执行该块 pass
【z3】
print eq(x+y,y+x)返回什么
False
因为AST node的哈希值不同
(表达式,种类,声明被称为AST)
【Python基础】
定义一个类的格式是什么
class 类名: def 方法1(self,参数): pass def 方法2(self,参数): pass
self:形式参数,python内部自动传递
obj = 类名()
当执行obj.func1()时,self就是obj
【Python基础】
class Animal: def \_\_init\_\_(self): print('A'的构造方法) self.tp = '动物'
class Cat(Animal): def \_\_init\_\_(self): print('B的构造方法') self.name = '猫'
问:猫怎样才能继承Animal的__init__以便可以访问tp
额外继承基类的init方法的公式是什么
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__()
【正则表达式】
\s代表什么
\s代表空白字符
[\t\r\n\f\v]
【z3】
Ben在等红绿灯,当灯变绿时,Ben从0开始以6m/(s**2)加速4.1秒,求这段时间的汽车位移。
提示公式:
距离 = 初速时间+(加速度时间**2)/2
末速 = 初速+加速度*时间
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]
【正则表达式】
[a-z]表示什么
[a-z]表示a到z中任意一个字母
【正则表达式】
$表示什么
匹配以xx结尾的
re. findall(‘hijack$’,’sldkjfshijacksdkjfh”)返回[ ]
re. findall(‘hijack$’,’sldkjfshijack”)返回[‘hijack’]
【Python基础】
如果我想要用户输入的字符为不可见要怎么做
import getpass
username = imput(‘your name:’).strip()
password = getpass.getpass(‘your password’:)
会造成好像没有输入的幻觉
【Python基础】
range(1,6)包括6吗?
random.randint(1,6)包括6吗?
rane(1,6)不包括6
只有random.randint()包括结束本身
其他都不包括结束本身
【正则表达式】
\w代表什么?
\w代表单词字符
[a-zA-Z0-9_]
【正则表达式】
re.findall(r’abc\b’,’abcskdjabcfh’)中的r是什么意思,为什么要加r
r的意思是raw_string原生字符串,正则中建议用raw
python有自己的关于\的规则,如\n,\t,\r
正则有自己的关于\的规则,如\w,\d
r使引号内的\失去python的\规则,保留正则的\规则
【Python基础】
a = [1,2]
b = [3,4]
a+b 是多少
[1,2,3,4]
【z3】
a = BitVec(‘a’,32)
经过一些solve得出的结果:m[a] = 842216501
想要把向量转换为python的整数型怎么做?
思路:位向量转换为16进制,再转换为十进制
m[a].sexpr()返回:”#x32333435”,
int(m[a].sexpr().replace(‘#’,’0’),16)
【Python基础】
a = [1,2,3]
print(a*8)
显示什么
[1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3]
【Python基础】
ditc = {‘a’:’x’,’b’:’y’,’c’:’z’}怎样清空字典
dict.clear()
【Python基础】
member = [‘a’ , 8 , 3.14 , ‘b’ , [1,2,3]]
删除元素’b’的三种方法
member.pop(3)
member.remove[‘b’]
del member[3]
pop如果没有参数,就是弹出最后1个元素
【Python基础】
dict{}
dict. fromkeys((1,2,3))得到什么?
dict. fromkeys((1,2,3),’num’)得到什么?
{1:none , 2:none , 3:none}
{1:’num’ , 2:’num’ , 3:’num’}
dict本身不变,仍然是()
fromkeys()函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
【z3】
我想自定义一个数据类型Role,里面有goodman,badman,normalman
from z3 import *
Role,(goodman,badman,normalman) = EnumSort(‘Role’,(‘goodman’,’badman’,’normalman’))
a = Const(‘a’,Role)
solve (a ! = goodman , a !=badman)
【z3】
我想建立一个z3py的整数型数组,所有的元素都是1
a,i = Ints(‘a i’)
AllOne = K(IntSort(),1)
solve(a == AllOne[i])
K(s,v)返回一个将s的任意值映射到v的数组
【z3】
请定义列表(5个元素)
整数型列表X
实数型列表Y
布尔型列表Z
from z3 import *
X = IntVector('x',5) Y = RealVector('y',5) Z = BoolVector('z',5')
【正则表达式】
[\d]表示什么
[\d]表示任意一个数字
【正则表达式】
\W表示什么?
\W表示非单词字符
【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’}
【z3】
怎样设置结果保留小数点后2位
怎样设置结果用10进制表示
set_option(precision = 2)
set_option(rational_to_decimal = True)
【Python基础】
zip([‘a’ , ‘b’] , [‘c’,’d’])的结果是什么
[(‘a’ , ‘c’) , (‘b’ , ‘d’)]
【z3】
Select(a,i)是什么意思
等价于a[i]
【Python基础】
a = 6 b = a 如果修改a = 7的话,b = ?
b还是6,因为另外出了个空间装7赋给a
【Python基础】
x = [‘a’,’b’,’c’,’d’]
反转x
这个反转函数是改变本身还是建立副本?
x.reverse()
改变本身
【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’)]
【Python基础】
列表num1 = [1,2,3,2,1]怎样去重复
num1 = list(set(num1))
【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)
【z3】
求解器怎么表示 怎样添加约束 怎样查看求解器的断言表达式列表 怎样查看是否有解 s.push()......s.pop()什么意思 求解器怎样查看x的值
s = Solver() s.add(各种约束) s.assertions() s.check() 求解前一定要check一下,否则无法求解
共享之前的约束表达式,在push()和pop()中间加入自己的表达式及其他命令。
pop()后再删除自己的约束
s.model[x]
【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不会改变。
【Python基础】
x = [‘a’,’b’,’c’,’d’]
b的index是多少
(不要回答3,使用函数表示)
x.index(‘b’)
查索引函数x.index(‘a’,2,4)
后两个参数是范围,不包括4本身
【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)
【正则表达式】
\D代表什么
非数字
[^0-9]
【Python基础】
随机选择 语文,数学,英语
import random
x = random.choice([‘语文’ , ‘数学’ , ‘英语’])