测试面试知识总结(自用)

面试谈吐

1、话术:
如果碰到不是很清楚的,或者不会的面试题目时,可以适当的进行话术解决:例如:
实在不好意思,这个问题我之前没碰到过,不过我试着结合自己的经验试着回答一下这个问题,如果回答的不准确的话,请多多指教

这样会给人友好,比你直接说不会,要好得多。
2、深刻的第一印象
3、语言亲和力
4、语言表达能力

技术栈

高级python

下面展示一些 内联代码片

import copy
from time import time
a=b=c=0
a,b,c=1,2,3
a,b=1,2
a,b=a+b,b

a+=1
a-=1
a*=2
a/=2
a**=2

list_test=[1,2,3,4,5]

list_len=len(list_test)

num3=list_test[2]
num5=list_test[-1]



print('无间隔取字列表'+str(list_test[0:]))
print('有间隔'+str(list_test[0:5:2]))
print('取出最后两个'+str(list_test[-2:]))

print('倒叙'+str(list_test[-1::-1]))

list_test[0:2]=[9,8]
print('替换前两个值'+str(list_test))


list_test[:0]=[0,0]
print('在列表开头插两个数据',str(list_test))


str_test="I am a chinese"
str_test1="ff#sfdf#dfdf#"
str_test2=" go go  go  yes ! "

print(str_test.split())
print(str_test1.split('#'))

print(str_test2.strip())

print(str_test2.strip(' ! '))


list_test3=['1','wew','643']
print('join连接','-'.join(list_test3))

print('大小转换',str_test.upper())
print(str_test.lower())

#推导式练习

list_test=[i for i  in range(5)]

print(list_test)


# list_test=(i for i in range(4) for j in range(i*4))
# print(list_test)


# enumerate 函数
# 基本介绍:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
# enumerate(sequence, start=0)

# sequence -- 一个序列、迭代器或其他支持迭代对象。
# start -- 下标起始位置,默认为0。



for i in enumerate(list_test):
    print(i)

for i,num in enumerate(list_test):
    print(str(i)+":"+str(num))
 

str="121313"
print("dshs{0}".format(str))

dict_test={"name":"sdsd","age":11}
print("{name}的 age 是{age}".format(**dict_test))

##文件操作

# open(name, mode, buffering)
# nam为必填参数,其他选填

# with open(r'I:/dsds.txt') as f:
#     content=f.read()
#     print (content)


# with open(r'I:/1.txt',mode='r+') as f:
#     # r+ w+ wb+
#     content=f.read()
#     print(content)

#全局变量

g_test=10

def sum():
    global g_test #表明下方使用的变量是全局变量
    g_test=4# 改变了全局变量的值
    print(g_test-1)

sum()
print(g_test)



dict_test={"name":"dsd","age":"11"}

for k,v in dict_test.items():
    print(k+":"+v)


for k in dict_test.keys():
    print(k)

for v in dict_test.values():
    print(v)


set_a={1,2,3,4}
set_b={3,4,5,6}
print('交集',set_a & set_b)
print('并集',set_a|set_b)
print('差集',set_b-set_a)

# startswith 函数
# startswith函数用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
# 参数介绍
# startswith(str, beg,end)


str_test='test wew'
print(str_test.startswith(str_test))

# 在Python中,一边循环一边计算的机制,称为生成器(Generator)。
# 也可以这样理解,生成器就是一个可以自动迭代的对象,类似于for循环,又比for循环灵活。

def my_decorator(f):
    def wrapper():
        print("sdsd")
        f()
        print("2323")
    return wrapper

def hello():
    print(1)


new_hello = my_decorator(hello)
new_hello()

@my_decorator
def hello():
    print("Hi,简说Python!")

hello()




def diagnostics(f):
    def wrapper(*args, **kwargs):
        """ 这个包装函数带参数,
        *args处理多个参数,
        **kwargs可以处理具名参数 """
        print("Executed", f.__name__, "at", time())
        value = f(*args, **kwargs)
        print("Exited", f.__name__, "at", time())
        print("Arguments:",args)
        print("Value returned:", value, "\n")
        return value
    return wrapper


@diagnostics
def print_nums():
    """ 不带参数,没有返回值 """
    for i in range(4):
        print(i, end="\t")


@diagnostics
def add_nums(a, b):
    """ 带参数,有返回值 """
    return a+b


# 调用经过装饰器装饰过的函数
print_nums()
print("-"*50)
add_nums(2, 3)
print("-"*50)


# sort和sorted方法的区别
# 1. 使用方法的区别
# 2.sort会改变列表本身,sorted不会改变列表本身



dict=[
    ('john',"A",10),
    ('john1',"A",15),
    ('john2',"A",11)
]


newlisr=sorted(dict,key=lambda a: a[2])
print(newlisr)


# return [myear for myear in range(startyear,endyear) if myear%4==0 and myear%400!=0]


# 一维的list去重可以用set(list),但是二维的list转set就会报错 unhashable type: ‘list’
# 原因是set传进来的是不可哈希的变量

plist=[1,2,2,2,3,4]
set(plist)
plist=[[1,1,2,3],[1,1,2,3],[2,3,4,4]]
# set(plist) #报错
# list 不使用 hash 进行元素的索引,自然它对存储的元素有可哈希的要求;而 set 使用 hash 值进行索引
# Python中那么哪些是可哈希元素?哪些是不可哈希元素?
# 可哈希的元素有:int、float、str、tuple
# 不可哈希的元素有:list、set、dict (这三个是可变的)

dic = set([tuple(t) for t in plist])
print(dic)


plist=[(1,1,2),(1,1,2)]
print(set(plist))

# 在集合中,创建空集合(set)必须使用函数set()。

a=set()
a.add(9)
a.add(10)

# 报错,因为此时默认生成的是字典类型,字典类型不存在add方法
# a={}
# a.add(9)

# a.pop()#随机产生一个数据 pop()方法用于从set中随机取一个元素。记住,是随机的~
# b = a.clear()
a.remove(9)


# 2、字典的key必须是可哈希的;


a=1
c=copy.copy(a)
a=3

if a==c:
    print("zhi")
if id(a)==id(c):
    print("dizhi")

#浅拷贝的是共用地址

d=copy.deepcopy(a)

a=2     
if a==d:
    print("zhi")
if id(a)==id(d):
    print("dizhi")

print(a)
print(d)


# 需要先将字符串转换成浮点型,才能转换成整型。

a="1.03"
# print(int(a))

# d=float(a)
# print(d)

def function(a,*args,**kwargs):
    print(type(a))
    print(type(args))
    print(type(kwargs))

    print(a)
    print(args)
    print(kwargs)


function(1,[1,2,3],{"q":1})
function(1,2,3,4,c=1,d=2,e=8)

function(1,(1,2,3),{"q":1})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值