python 面试题

前段时间面试碰到的一组python面试题,虽然很简单但是特别的基础.

1.Python 如何判断二维数组中是否包含整数?

array = [[1, 3, 5.6, 7.2, 8, 9.9], [2.5, 4.7, 6.8, 7.3, 9, 10], [3.7, 6.7, 9.8, 9.9, 11, 12.1]]

for i in array:
    for j in i:
        if str(j).isdigit():   # 判断是否是整数还可以通过isinstance(j, int)
print("二维列表中包含整数") break break

2.如何将字符串中的空格转变成为%20?

# 1.通过替换方式实现
>>> str = "how do you do"
>>> str.replace(" ", "%20")
'how%20do%20you%20do'
# 2.通过编码的方式实现
>>> from urllib import parse
>>> parse.quote(str)
'how%20do%20you%20do'

3.把列表的重复元素删除?

# 通过set的方式先去重,在转换为列表
>>> list1 = [1, 3, 3, 4, 1, 2]
>>> list(set(list1))
[1, 2, 3, 4]

如果第一题变成先生成一个4* 4 的维数组,然后再次去判断是否包含整数,这里我们需要考虑生成数组;

array = []
for j in range(0, 4):
    array1 = []
    for i in range(1, 5):
        array1.append(i)
    array.append(array1)
print(array)

通过两个for循环就可以生成,虽然简单我们还是满足要求的,下面在增加需求4* 4 的数组,但是要求二维数组中即包含整数又包含小数;

import random

array = []
for j in range(0, 4):
    array1 = []
    for i in range(0, 4):
        radNum = random.randint(0, 100)
        if radNum % 2 == 0:  # 如果是偶数生成1,10之间整数,如果是基数生成一个小数,并且保留2为小数
            array1.append(random.randint(1, 10))
        else:
            array1.append(round(random.uniform(1, 10), 2))
    array.append(array1)

继续增加复杂度,每行的数值,从左到右数值需要依次增大

import random

array = []
for j in range(0, 4):
    array1 = []
    for i in range(0, 4):
        radNum = random.randint(0, 100)
        if radNum % 2 == 0:  # 如果是偶数生成1,10之间整数,如果是基数生成一个小数,并且保留2为小数
            if len(array1) == 0:  # 判断当前列表长度是不是0,如果是0,代表列表没有任何元素,那么直接添加元素
                element = random.randint(0, 100)
                array1.append(element)
            else:
                element = random.randint(int(array1[-1]) + 1, int(
                    array1[-1]) + 100)  # 否则生成的元素一定要大于最后一个元素,并且避免出现最后一个元素和生成随机数的边界值相差太小,同时自动增长100
                array1.append(element)
        else:
            if len(array1) == 0:
                element = round(random.uniform(0, 100), 2)
                array1.append(element)
            else:
                element = round(random.uniform(array1[-1] + 1, array1[-1] + 100), 2)
                array1.append(element)
    array.append(array1)

猜你喜欢

转载自www.cnblogs.com/mengyu/p/9404769.html