软件测试⼯程师常见的17道Python⾯试题【多测师_王sir】【软
件测试】
#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020-07-10 12:00
Wechat:xiaoshubass
website:www.duoceshi
===========================
"""
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:]
重装系统后sql数据库修复#⽅法⼆
a=[1, 3, 5, 7]
a.insert(3,a[0])
print a
6.交换
已知 a = 9, b = 8,如何交换 a 和 b 的值,得到 a 的值为 8,b 的值为 9
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)
手机rank函数怎么用
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)access数据库生成客户端
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))
# 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),
程序识别⽤户名和公司名后,将⽤户名和公司名输出到控制台。
要求:
1. 校验输⼊内容是否符合规范(xx@yy), 如是进⼊下⼀步,
如否则抛出提⽰"incorrect email format"。注意必须以结尾
2. 可以循环“输⼊--输出判断结果”这整个过程
3. 按字母 Q(不区分⼤⼩写)退出循环,结束程序
import re
#判断邮箱结尾
def is_mail_style(x):
a=re.match(r'[0-9a-zA-Z\_\-]*@[0-9a-zA-Z]+(\)$',x)
if a:
yhm = re.findall("^(.+?)@", x)
print"⽤户名:%s " % yhm[0]
gc = re.findall("@(.+?)\", 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'请输⼊')
python基础知识测试
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)
dswith(rule):  # 判断是否是"xxx"结尾
all.append(filename)
return all
if__name__ == '__main__':
b = get_files(r"D:\讲课⽂档\课件\第⼆个⽉课件\Python+接⼝框架\POMDemo\pages") for i in b:
print i
start="138********"
for ((i=1; i<=10; i++))
dofusioncharts
let "num=$start+$i"
md5_pass=`echo -n 123456 |openssl md5 |awk -F'=' {'print $2'}`
echo "$num:$md5_pass" >>./
done
[root@localhost xiaowang]#
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e
138********: e10adc3949ba59abbe56e057f20f883e

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。