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
  • 相关阅读:
    Head first javascript(七)
    Python Fundamental for Django
    Head first javascript(六)
    Head first javascript(五)
    Head first javascript(四)
    Head first javascript(三)
    Head first javascript(二)
    Head first javascript(一)
    Sicily 1090. Highways 解题报告
    Python GUI programming(tkinter)
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13280985.html
Copyright © 2011-2022 走看看