zoukankan      html  css  js  c++  java
  • 软件测试工程师常见的17道Python面试题【多测师_王sir】【软件测试】

    
    
    #coding=utf-8
    """
    ===========================
    Author:多测师_王sir
    Time:2020-07-10 12:00
    Wechat:xiaoshubass
    website:www.duoceshi.cn
    ===========================
    """
    python练习题
    1.统计
    统计在一个队列中的数字,有多少个正数,多少个负数,如
    a=[1, 3, 5, 7, 0, -1, -9, -4, -5, 9]
    #方法一
    # 用列表生成式,生成新的列表
    b=[i for i in a if i>0]
    print '大于0的个数:%s'%len(b)
    c=[i for i in a if i<0]
    print '小于0的个数:%s'%len(c)
    
    #方法二
    # coding:utf-8
    a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
    # 用传统的判断思维,累加
    m = 0
    n = 0
    for i in a:
        if i > 0:
            m += 1
        elif i < 0:
            n += 1
        else:
            pass
    print "大于 0 的个数:%s" % m
    print "小于 0 的个数:%s" % n
    
    2.字符串切片
    字符串 "axbyczdj",如果得到结果“abcd”
    方法一
    字符串切片
    a='axbyczdj'
    print a[0::2]  #这里用a[::2]结果是一样的
    方法二
    a='axbyczdj'
    c=[]
    for i in range(len(a)): #对a这个字符串的长度进行遍历
        if i % 2 == 0:
            c.append(a[i])
    print ''.join(c)
    
    3.字符串切割
    已知一个字符串为“hello_world_xiaowang”, 如何得到一个队列["hello","world","xiaowang"]
    a = 'hello_world_xiaowang'
    b = a.split('_')
    print b    #或者   print a.split('_')
    
    #4.格式化输出
    #已知一个数字为1,如何输出"0001"
    a=1
    print '%04d'%a
    
    5.队列
    已知一个队列,如: [1, 3, 5, 7], 如何把第一个数字,放到第三个位置,
    得到:[3, 5, 1, 7]
    insert 插入数据
    a=[1, 3, 5, 7]
    a.insert(3,a[0])
    print a[1:]
    #方法二
    a=[1, 3, 5, 7]
    a.insert(3,a[0])
    a.remove(a[0])
    print a
    
    6.交换
    已知 a = 9, b = 8,如何交换 a 和 b 的值,得到 a 的值为 8,b 的值为 9
    方法1
    a=9
    b=8
    a,b=b,a
    print 'a的值为:%d' % a
    print 'b的值为:%d' % b
    方法2
    a=9
    b=8
    #用中间变量c
    c=a
    a=b
    b=c
    print 'a的值为:%d' % a
    print 'b的值为:%d' % b
    
    7.水仙花
    打印出 100-999 所有的"水仙花数",所谓"水仙花数"是指一个三位
    数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",
    因为 153=1 的三次方+5 的三次方+3 的三次
    sxh = []
    for i in range(100,1000):
        s=0
        m=list(str(i))
        for j in m:
            s +=int(j)**len(m)
        if i == s:
            print i
            sxh.append(i)
    print '100-999的水仙花数:%s' % sxh
    
    用java解法:
    
    
    8.完全数
    如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。
    例如:第一个完全数是 6,它有约数 1、2、3、6,除去它本身 6 外,其余3
    个数相加,1+2+3=6。第二个完全数是 28,它有约数 1、2、4、7、14、28,
    除去它本身 28外,其余 5 个数相加,1+2+4+7+14=28。那么问题来了,
    求 1000 以内的完全数有哪
    a=[]
    for i in range(1,1000):
        s=0
        for j in range(1,i):
            if i % j == 0 & j <i:
                s+=j
        if s ==i:
            print i
            a.append(i)
    
    java的解法:
    
    
    print "1000 以内完全数:%s" % a
    
    9.排序
    用 python 写个冒泡
    a = [1, 3, 10, 9, 21, 35, 4, 6]
    s = range(1, len(a))[::-1]
    print(list(s)) # 交换次数
    for i in s:
        for j in range(i):
            if a[j] > a[j + 1]:
                a[j], a[j + 1] = a[j + 1], a[j]
        print("第 %s 轮交换后数据:%s" % (len(s)-i+1, a))
    print(a)
    
    10.sort 排序
    已知一个队列[1,3,6,9,7,3,4,6]
    按从小到大排序
    按从大到小排序
    去除重复数字   用set
    a = [1, 3, 6, 9, 7, 3, 4, 6]
    
    # 1.sort 排序,正序
    a.sort()
    print a
    
    #2.sort倒叙
    a.sort(reverse=True)
    print a
    
    #3.去重
    b = list(set(a))
    print b
    
    # 11.阶乘
    # 计算 n 的阶乘
    # 计算 n!,例如 n=3(计算 321=6), 求 10的阶乘
    # from functools import reduce
    # a=1
    # b=reduce(lambda x,y:x*y, range(1,a+1))
    # print b
    
    # def digui(x,y):
    #     return x*y
    # a=1
    # b=reduce(digui,range(1,a+1)) # 1,11
    # print b
    
    # 12.递归函数
    # def digui(n):
    #     if n ==1:
    #         return 1
    #     else:
    #         return n*digui(n-1)
    #         print n*digui(n-1)
    # a=5
    # print digui(a)
    
    # 13.斐波那契数列
    # 已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3
    # 开始的每一项都等于其前两项的和,这是斐波那契数列。求满足规律的100以内的所有数据
    # a = 0
    # b = 1
    # while b < 100:
    #     print b,
    #     a,b = b,a+b
    
    # 14.幂的递归
    # 计算 x 的 n 次方,如:3 的 4 次方 为 3*3*3*3=81
    def mi(x, n):
        '''计算 x 的 n 次方'''
        if n == 0:
            return 1
        else:
            return x*mi(x, n-1)
    x = 3
    num = 4
    print mi(x, num)
    
    15.python编程题
    写一个小程序:控制台输入邮箱地址(格式为 username@companyname.com),
    程序识别用户名和公司名后,将用户名和公司名输出到控制台。
    要求:
    1. 校验输入内容是否符合规范(xx@yy.com), 如是进入下一步,
    如否则抛出提示"incorrect email format"。注意必须以.com结尾
    2. 可以循环“输入--输出判断结果”这整个过程
    3. 按字母 Q(不区分大小写)退出循环,结束程序
    
    import re
    #判断邮箱.com结尾
    def is_mail_style(x):
        a=re.match(r'[0-9a-zA-Z\_-]*@[0-9a-zA-Z]+(.com)$',x)
        if a:
            yhm = re.findall("^(.+?)@", x)
            print "用户名:%s " % yhm[0]
            gc = re.findall("@(.+?).com", x)
            print "公司名:%s " % gc[0]
            return True
        else:
            print "incorrect email format"
            return False
    
    a = raw_input("请输入:")
    while 1:
        if a == "q" or a == "Q":
            exit()
        else:
            if is_mail_style(a):
                break
            a = raw_input(u'请输入')
        print '下一步!'
    
    16.python编程-遍历文件
    如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件?
    #coding:utf-8
    import os
    
    def get_files(path='D:\xx', rule=".py"):
        all = []
        for fpathe, dirs, fs in os.walk(path):  # os.walk 是获取所有的目录
            for f in fs:
                filename = os.path.join(fpathe,f)
                if filename.endswith(rule):  # 判断是否是"xxx"结尾
                    all.append(filename)
        return all
    if __name__ == '__main__':
        b = get_files(r"D:讲课文档课件第二个月课件Python+接口框架POMDemopages")
        for i in b:
            print i
    
    

    start="13800000000"
    for ((i=1; i<=10; i++))
    do
    let "num=$start+$i"
    md5_pass=`echo -n 123456 |openssl md5 |awk -F'=' {'print $2'}`
    echo "$num:$md5_pass" >>./md5.txt
    done
    
    [root@localhost xiaowang]# cat md5.txt
    13800000001: e10adc3949ba59abbe56e057f20f883e
    13800000002: e10adc3949ba59abbe56e057f20f883e
    13800000003: e10adc3949ba59abbe56e057f20f883e
    13800000004: e10adc3949ba59abbe56e057f20f883e
    13800000005: e10adc3949ba59abbe56e057f20f883e
    13800000006: e10adc3949ba59abbe56e057f20f883e
    13800000007: e10adc3949ba59abbe56e057f20f883e
    13800000008: e10adc3949ba59abbe56e057f20f883e
    13800000009: e10adc3949ba59abbe56e057f20f883e
    13800000010: e10adc3949ba59abbe56e057f20f883e
  • 相关阅读:
    2单表CRUD综合样例开发教程
    1代码表样例开发教程
    ProcessOn
    UniEAP Platform V5.0 Unable to compile class for JSP
    Message Unable to compile class for JSP
    UniEAP Platform V5.0建库
    UML_2_浅谈UML的概念和模型之UML九种图
    PPT鼠绘必须掌握的PPT绘图三大核心功能
    PPT添加节
    remap.config文件配置模板
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13280985.html
Copyright © 2011-2022 走看看