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("33[31;1m输入有误,请重新输入!33[0m")

  

原文地址:https://www.cnblogs.com/chenyablog/p/15187154.html