美文网首页
python03-函数

python03-函数

作者: AndroidCat | 来源:发表于2017-04-19 17:30 被阅读0次

函数传递

  • 函数可以作为参数传递
def func1(fun, num):
    temp = pow(2, num)
    fun(temp) # 调用传入的函数

def func2(num):
    print(num)

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

func1(func2, 100) #==> 1024

内置函数

  • 自定义filter函数:
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函数:
# 自定义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)

文件管理

  • 2.7 and 3.x
    • 2.7有open和file方法,效果一样
    • 3.x后把file方法去掉了,所以统一用open
  • 基本操作
    • rwxa
  • 二进制操作
    • rb,wb,xb,ab
  • 读写操作
    • r+:用的最多
      • 一进去如果不读,直接写,会在最前面插入
      • 进去后如果有读取操作,不管指针在哪里,写入数据直接会在最后追加,可以通过seek调整指针后插入数据,但是会覆盖原位置上的字符
    • w+:写读,创建或清空文件
    • x+:写读,创建或者抛异常
    • a+:追加
  • 直接迭代file文件可以一行一行获取数据

模拟用户登陆界面

  • str.strip():去除空格和换行符
  • str.strip('char'):去除制定的字符
  • 定义函数需要写注释"""文档注释""""
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('输入有误!')

面试题

  • 函数式编程
  • 面向对象
  • 字节二进制转换
  • http请求
  • 数据库设计
  • 算法(排序之类)
  • 智力测试

冒泡排序

# 冒泡排序
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)

递归调用

  • 作用:做计算器,小括号嵌套
  • python自身有保护,递归调用次数超过某个值就会抛异常
  • 斐波那契数列
  • 0 1 1 2 3 5 8 13 21 34 55 89
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)

相关文章

  • python03-函数

    函数传递 函数可以作为参数传递 内置函数 自定义filter函数: 自定义map函数: 文件管理 2.7 and ...

  • python03-多态、类方法、类属性

    一. 面向对象三大特性 封装将属性和方法书写到类的里面的操作即为封装封装可以为属性和方法添加私有权限 继承子类默认...

  • 【接口/性能】python03-根据接口文档发送HTTP请求

    实践:根据接口文档发送HTTP请求 一、需先了解公共的基础请求信息协议文档 包括以下信息: 1. info:即平台...

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

网友评论

      本文标题:python03-函数

      本文链接:https://www.haomeiwen.com/subject/ufehzttx.html