首页 > 技术文章 > Python3简单面试编程题

PongorPeo 2020-03-10 18:40 原文

# 1、求出1-99之间的和
sum = 0
for i in range(100):
    sum = sum + i
print(sum)

  

# 2、正序排序下列列表

a = [1, 12, 16, 19, 6, 4, 2, 66, 33, 87]
# 代码
len = len(a)
for i in range(len):
    for k in range(len - i -1):
        if (a[len-i-1] < a[len-i-k-2]):
            a[len-i-k-2],a[len-i-1] = a[len-i-1],a[len-i-k-2]

print(a)

  

# 3.请使用迭代查找一个list中最小和最大值,并返回一个tuple
# -*- coding: utf-8 -*-
def findMinAndMax(L):

    if not isinstance(L, list):
        raise TypeError(L + ', bad type!')
    if len(L) == 0:
        return (None, None)
    n = L[0]
    m = L[0]
    for i in L:
        if i < n:
            n = i
        if i > m:
            m = i

    return (n, m)

#测试
if findMinAndMax([]) != (None, None):
    print('测试失败!')
elif findMinAndMax([7]) != (7, 7):
    print('测试失败!')
elif findMinAndMax([7, 1]) != (1, 7):
    print('测试失败!')
elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9):
    print('测试失败!')
else:
    print('测试成功!')

  

# 4.利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法
# -*- coding: utf-8 -*-
def trim(s):
    if not isinstance(s, str):
        raise TypeError(s + ', bad type!')
    for i in range(len(s)):
        if (s[i:i + 1] not in ' '):
            s = s[i:]
            break
        elif ((s[i:i + 1] == ' ') and (i == (k - 1))):
            s = ''
            break
    for j in range(len(s)):
        if j == 0:
            if (s[-1:] != ' '):
                break
        else:
            print(s[-j - 1:-j])
            if (s[-j - 1:-j] != ' '):
                s = s[:-j]
                break
     return s

# 测试:
if trim('hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello') != 'hello':
    print('测试失败!')
elif trim('  hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello  world  ') != 'hello  world':
    print('测试失败!')
elif trim('') != '':
    print('测试失败!')
elif trim('    ') != '':
    print('测试失败!')
else:
    print('测试成功!')

  

推荐阅读