python03-函数

2017-04-19  本文已影响0人  AndroidCat

函数传递

def func1(fun, num):
    temp = pow(2, num)
    fun(temp) # 调用传入的函数

def func2(num):
    print(num)

# func1, func2是函数名,函数的引用
# func1(), func2()是调用函数

func1(func2, 100) #==> 1024

内置函数

def myFilter(function, iterable):
    li = []
    for temp in iterable:
        ret = function(temp)
        if ret:
            li.append(temp)
    return li

li = [11, 22, 33, 44, 55, 66]
ret = myFilter(lambda x:True if x > 22 else False, li)
print(ret)
# 自定义map
def myMap(function, iterable):
    """
    自定义map方法
    :param function:
    :param iterable:
    :return:
    """
    li = []
    for i in iterable:
        ret = function(i)
        li.append(ret)
    return li

def function(args):
    return args + 100

li = [11, 22, 33, 44, 55, 66]
newList = myMap(function, li)
print(newList)

文件管理

模拟用户登陆界面

def main():
    sel = input('请选择用户操作:1-登陆,2-注册')
    if sel == '1':
        userName = getUserName()
        password = getPassword()
        flag = False
        with open('login.txt', mode='r', encoding='utf-8') as file:
            for i in file:
                userInfo = i.strip().split('&')
                if userName == userInfo[0] and password == userInfo[1]:
                    flag = True
                    break
            if flag:
                print('登陆成功')
            else:
                print('登陆失败')
    elif sel == '2':
        userName = getUserName()
        password = getPassword()
        flag = False
        with open('login.txt', mode='r+', encoding='utf-8')as file:
            for i in file:
                ls = i.strip().split('&')
                if ls[0] == userName:
                    flag = True
                    break
            if not flag:
                file.write(userName)
                file.write('&')
                file.write(password)
                file.write('\n')
                print('注册成功')
            else:
                print("用户已经存在")
        pass
    else:
        print('输入有误!')

面试题

冒泡排序

# 冒泡排序
li = [22, 3, 4, 5, 1, 32, 56, 4, 23, 67, 68, 66, 32]

def bobleSotr(ls):
    for current in range(len(ls) - 1):
        for i in range(len(ls) - 1 - current):
            if ls[i] > ls[i + 1]:
                temp = ls[i]
                ls[i] = ls[i + 1]
                ls[i + 1] = temp

bobleSotr(li)
print(li)

递归调用

def fun1(num):
    if num == 1:
        return 0
    elif num == 2:
        return 1
    else:
        return fun1(num - 1) + fun1(num - 2)

ret = fun1(9)
print(ret)
上一篇下一篇

猜你喜欢

热点阅读