10道Python编程面试题,你能顺手写几道?
1.统计在一个队列中的数字,有多少个正数,多少个负数。
a=[1,3,5,7,9,11,0,-2,-4,-6,-8,-10]
m = 0 #m:统计大于0的数
n = 0 #n:统计小于0的数
for i in a:
if i > 0:
m += 1
elif i < 0:
n += 1
print("大于0的个数:{}".format(m))
print("小于0的个数:{}".format(n))
2.请把字符串"软件测试"里的字符串逐个打印出来。
str='测试'
for i in str:
print(i)
3.字符串"微信公众号:软件测试",输出为”软件测试小栈:微信公众号"。
str="微信公众号:软件测试"
list_str=list(str.split(':'))
list_str.reverse()
print(":".join(list_str))
4.请把两个列表提取作为字典:
现有2个列表
keys = ['name', 'age', 'city','微信公众号']
values = ['CoCo', 18, 'ShenZhen','I软件测试']]
需要将转换为字典,结果如下:
{'name': 'CoCo', 'age': 18, 'city': 'ShenZhen', '微信公众号': '软件测试'}
keys = ['name', 'age', 'city','微信公众号'] values = ['CoCo', 18, 'ShenZhen','软件测试'] dict = dict(zip(keys, values)) print(dict)
5.Python代码计算1-1000以内能被7整除,除以5余3的整数,并按行打印。
for i in range(1, 1000):
if i % 7 == 0 and i % 5 ==3:
print(i)
6.用递归实现数字的阶乘N!,如n=9时,s=9*8*7*6*5*4*3*2*1
def a(n):
if int(n)<=1:
return 1
else:
return n*a(n-1)
print(a(9))
7.合并两个列表,并消除重复的值。
list_1=["CoCo","CiCi","软件测试","520"]
list_2=["520","ITesterA","888",666,"CoCo"]
list_1=["CoCo","CiCi","软件测试","520"] list_2=["520","ITesterA","888",666,"CoCo"] res=set(list_1+list_2) print(res)
8.使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和。
#从2开始计算
i = 2
#定义一个变量用于保存结果
sum=0
while i <= 100:
if i % 2 == 0:
sum = sum + i
else:
sum = sum - i
i += 1
print("2-3+4-5+6...+100=",sum)
9.检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回。
def func(*args):
"""
检查列表长度,如果大于2,那么保留前两个长度的内容,并将新内容返回s
:param args:
:return:
"""
#遍历列表
for i in args:
# print(i)
#获取长度
len_i=len(i)
#判断长度
#如果长度大于2,返回前两个,利用切片[:2]
if len_i>2:
return (i[:2])
#否则,返回i即可
else:
return (i)
#调用函数,将新内容返回给L
L=func(["CoCo","微信公众号:软件测试",520])
print(L)
10.将用户输入的所有数字相乘之后对20取余数,用户输入的数字个数不确定。
#定义函数
def func(*args):
"""
将用户输入的所有数字相乘之后对20取余数
:param args:
:return:
"""
# 初始积为1
mul = 1
# 遍历所有用户输入的动态参数
for value in args:
# 将所有输入的数字相乘
mul *= value
print("所有数字相乘之后对20取余数,计算结果为:{}".format(mul % 20))
while True:
try:
#从控制台获取用户输入的数字
num = input('请输入需要计算的数字(数字之间以英文分隔):')
#将用户输入的数字以英文逗号进行分割存入list_num
list_num = num.split(',')
#定义一个空列表new_list_num
new_list_num = []
#遍历list_num列表,将值依次存入new_list_num列表
for i in list_num:
#强制转换成int类型
new_list_num.append(int(i))
#调用func1方法 带一个*解包
func(*new_list_num)
except Exception as e:
#如果输入非法(输入小数/字符/中文)
print("\033[31;1m输入有误,请重新输入!\033[0m")

浙公网安备 33010602011771号