面试必记代码!!

本贴最后更新于 831 天前,其中的信息可能已经时移世易

前言

不管是初级还是中级测试工程师,现在的岗位要求都在要求自动化的能力了。当然高级测试工程师就更不用说了。

那既然岗位要求,面试时就必不可少会问到代码能力。本篇文章就给大家把基础的代码面试题整理出来了。

然后我是希望大家如果基础薄弱,就死记硬背也给背下来。有能力的话就要去研究一下里面的实现逻辑。

1、冒泡排序

76fbc894edd94da9a44fe87a15efee8a.gif

# 冒泡排序
# 记住,排序是升序排!
# 原理:从左到右,依次比对相邻的两个数,数大的排后面,数小的排前面
# 比如,11,13,12,10,14,那么最终要形成的是10,11,12,13,14
list1= [11,13,12,10,14]
le = len(list1)
def bubble_sort(list1):
    # 遍历列表长度减1次
    for j in range(1,le):
        # 创建一个变量,用来记录本轮冒泡,是否有数据交换位置
        status = False
        # 每次遍历都获取第一个元素,依次和后面的元素进行比较
        for i in range(0,le-j):
            # 前一位数 > 后一位数。交换位置。
            if list1[i] > list1[i+1]:
                list1[i],list1[i+1] = list1[i+1],list1[i]
                # 只要由数据交换位置,则修改statusd的值
                status = True
        # 每一轮冒泡结束之后,判断当前status是否为Flase,
        # 如果为Flase,则说明上一轮冒泡没有修改任何数据的顺序(即数据是有序的)
        if not status:
            return list1
    return list1

2、99乘法表

for row in range(1,10):
    for index in range(1,row+1):
        print(f'{index}*{row}={index * row}',end="\t")
    print()

3、使用print函数和循环结构输出如下由*组成的金字塔

'''
使用print函数和循环结构输出如下由*组成的金字塔
   *
  ***
 *****
*******
'''
max_level = 4
for row in range(1,max_level+1):
    space_count = max_level - row
    star_count = row * 2 -1
    for item in range(space_count):
        print(" ",end="")
    for item in range(star_count):
        print("*",end="")
    print()

4、对list去重并找出list中的重复元素

'''
如果只是给列表去重,用set()集合即可
但是要找出重复的元素就不行了
'''
from collections import Counter #引入Counter
a = [1, 2, 3, 3, 4, 4]
b = dict(Counter(a))
print(b) # 统计元素出现次数
print ([key for key,value in b.items() if value > 1]) #只展示重复元素
print ({key:value for key,value in b.items() if value > 1}) #展现重复元素和重复次数

5、获取一个100以内偶数的纯数字序列,并存到列表里,然后求这些偶数数字的和。

def add_fun(data):
    sum = 0
    list = []
    for num in range(2,data,2):
        list.append(num)
        sum += num
    return sum,list
result = add_fun(100)
print('100以内的偶数之和为{},\n生成的偶数列表为:{}'.format(result[0],result[1]))

6、用Python中写出1加到100的算法

sum = 0
for i in range(1,101):
    sum += i
print(sum)

7、求100-999的水仙花数

'''
水仙花数是指一个n位的正整数(n>=3),它的每个数字的n次幂之和等于它本身。
例如: 153=1*1*1+5*5*5+3*3*3
153为三位数,它的每个数字的三次方之和等于153。
'''
# 分析过程:将正整数n的个位十位百位分别取出,再求幂之和;个位百位比较好拆分,十位的话可以先减去百位再用除法计算。
print("100-999之间的水仙花数为:")
for a in range(100, 999):
    i = int(a % 10)    # 取出个位
    j = int(a / 100)   # 取出百位
    k = int((a - j * 100)/10)  # 取出十位
    if i**3 + j**3 + k**3 == a:   # 计算幂之和,与数本身进比较判断
        print(a)
回帖
请输入回帖内容 ...