<dd id="dbjz6"><noscript id="dbjz6"></noscript></dd>
    <th id="dbjz6"></th>
      1. <dd id="dbjz6"></dd>
        1. 软件测试常见python3面试题(一)

          不管大家愿意不愿意,现在面试测试多多少少都会出现一些编程题目,下面是小酋收集的一些常见python3面试题,助大家一臂之力。(后面将持续更新)

          1、lambda 运用

          sum= lambda a,b:a*b
          print(sum(7,9))

          2、统计字符串中每个字母的个数

          from collections import Counter
          a2="sdfjksajkasjdkjdsfkjlksfjkskjhklskjsdkjkfd"
          res2 =  Counter(a2)
          print(res2)

          3、字符串"not 404 found 张三 99 深圳",结果输出“张三 深圳”

          import re
          a3= "not 404 found 张三 99 深圳"
          list3 = a3.split(" ")
          res3 = re.findall('d+|[a-zA-Z]+',a3)
          for s in res3:
              if(s in list3):
                  list3.remove(s)
          newstr =  " ".join(list3)
          print(newstr)

          4、filter方法求出列表所有奇数并构造新列表,a4 =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

          方式一:

          a4 =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
          def fn(a):
              return a%2==1
          newlist = filter(fn,a4)
          newlist = [i for i in  newlist]
          print(newlist)

          方式二:

          a5 =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
          newlist5 = [a for a in a5 if a%2==1 ]
          print(newlist5)

          5、对列表排序,按从大到小,a6=[5,11,99,33,89,78]

          a6=[5,11,99,33,89,78]
          a6.sort(reverse=True)
          print(a6)

          6、两个列表[1,5,7,9]和[2,2,6,8]合并为[1, 2, 2, 5, 6, 7, 8, 9]

          lista=[1,5,7,9]
          listb=[2,2,6,8]
          lista.extend(listb)
          lista.sort()
          print(lista)

          7、打印当前日期,如2021-03-04

          datetimes = datetime.datetime.now()
          datetimes = datetimes.strftime("%Y-%m-%d")
          print (datetimes)

          8、正则表达式匹配中,(.*)和(.*?)匹配区别?

          import re
          str1 = '<a>呵呵哒</a><a>萌萌哒</a>'
          str1_1 = re.findall('<a>(.*)</a>',str1)  #贪婪匹配
          str1_2 = re.findall('<a>(.*?)</a>',str1) #非贪婪匹配
          print(str1_1)  #打印结果:呵呵哒</a><a>萌萌哒
          print(str1_2)  #打印结果:呵呵哒 萌萌哒

          9、[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

          al1 = [[1,2],[3,4],[5,6]]
          al1 = [ x for y in al1 for x in y ]
          print (al1)

          10、as="张明 98分",用re.sub,将98替换为100

          import re
          as1="张明 98分"
          asn = re.sub(r'd+','100',as1)
          print(asn)

          11、返回一个 IP 数组"192.0.0.33?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.3",并且按 IP 最后一位由大到小排序返回

          string = "192.0.0.33?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.3"
          string = string.replace('?','',1).replace('?','!',1).split('!')
          #string.sort(key=lambda x:x[-1],reverse=True)
          string.sort(key=lambda x:int(x.split('.')[3]),reverse=True)
          print(string)

          12、qstring = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"

          qstring = "ajldjlajfdljfddd"
          nstring = set(qstring)
          qstring = list(nstring)
          qstring.sort(reverse=False)
          qstring = "".join(qstring)
          print(qstring)

          13、python中copy和deepcopy区别

          ①复制不可变数据类型,不管copy还是deepcopy,都是同一个地址当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的情况一样,对象的id值与浅复制原来的值相同。

          #复制的值是可变对象(列表和字典)

          astr='嗨喽'
          bstr = astr
          cstr = copy.copy(astr)
          dstr = copy.copy(bstr)
          print(astr,id(astr))
          print(astr,id(bstr))
          print(astr,id(cstr))
          print(astr,id(dstr))

          ②浅拷贝copy有两种情况:

          第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。

          第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值  ,会影响浅复制的值。

          #深拷贝deepcopy:完全复制独立,包括内层列表和字典

          alist=[1,2,[5,6,7]]
          blist = copy.copy(alist)
          clist = copy.deepcopy(alist)
          print(alist,id(alist))
          print(blist,id(blist))
          print(clist,id(clist))

          #第一种情况

          alist[1]=20
          print(alist,id(alist))
          print(blist,id(blist))
          print(clist,id(clist))

          #第二种情况

          alist[2][0]=50
          print(alist,id(alist))
          print(blist,id(blist))
          print(clist,id(clist))

          14、使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小

          foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4]
          foo.sort(key=lambda x:(x<0,abs(x)),reverse=False)
          print(foo)

          15、列表嵌套列表排序,年龄数字相同时,按名字排序

          fee = [['张三',27],['李四',24],['王老五',24],['刘麻子',29]]
          fee.sort(key=lambda x:(x[1],x[0]))
          print(fee)

          16、判断浮点数的运行结果是否相等

          aa = 0.1
          ab = 0.2
          ac = 0.3
          assert (aa + ab == ac) #可能丢失精度
          assert Decimal(str(aa)) + Decimal(str(ab)) == Decimal(str(ac)) #不会丢失精度

          -- End --

          文末寄语: 人生的每一次抉择都将带你走向不同的道路,或好或坏无法预料。

          ?

          留言

          chinesemature老熟妇oldman