python Day13

  • 匿名函数(一句话函数,比较简单的函数)

    • func=lambda a,b:a+b
      print(func(1,2))
      ###结果:3
    • func=lambda a:(a[0],a[2])
      print(func("dsfds"))
    • func_max=lambda a,b:a if a>b else b
      print(func_max(3,2))
  • 内置函数扩展

    • bin将10进制转换为二进制并返回

    • oct将10进制转化为八进制字符并返回

    • hex将10进制转化为16进制并返回

    • divmodf :返回除数与被除数的结果

      print(divmod(10,3))
      ###结果(3, 1)
    • round:保留浮点数的小数位数

      print(round(3.2243252543,2))
      ###结果3.22
    • pow:求x的y次幂

      print(pow(2,3))
      ##结果 8

+ bytes ~~~python
s1="电话卡"
print(bytes(s1,encoding="utf-8"))
##结果 b'\xe7\x94\xb5\xe8\xaf\x9d\xe5\x8d\xa1'
  • chr:输入位置数字找出来其对应的字符

    print(chr(97))
    ## a
  • reversed返回的是一个翻转的迭代器

    list1=[i for i in range(10)]
    obgj=reversed(list1)
    print(obgj)
    print(list(obgj))
    ###结果 :<list_reverseiterator object at 0x000001DD79831948>
    ## [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • zip 拉链的方法

    li=[1,23,4,4,55]
    tu1=("太白","猴哥","单反")
    s1="fsfsdfdsf"
    print(list(zip(li,tu1,s1)))
    ###结果[(1, '太白', 'f'), (23, '猴哥', 's'), (4, '单反', 'f')]
  • min,max的扩展用法

    #以绝对值的形式输出列表的最小值
    ###凡是可以加key的,它会自动的将可迭代对象中的每个元素按照顺序传入对应的函数中
    li=[1,23,4,4,55,-1]
    print(min(li,key=abs))##key 后面跟着函数
    ##1
    ######
    l11=[('太白',18),("alex",73),("wusir",35),("口天吴",41)]
    def func(a):
    return a[1]
    print(min(l11,key=func))#min替换成sorted也是可以的
    ####结果:('太白', 18)
  • filter 列表推导式的筛选模式

    l1=[1,2,3,4,55]
    l2=list(filter(lambda x:x>3,l1))
    print(l2)
    ###结果[4, 55]
  • map 列表推导式的循环模式,吧列表中中每个元素输入进去

    l1=[1,2,3,4,55]
    ret=map(lambda x:x**2,range(1,6))
    print(list(ret))
    ##结果是迭代器的模式
  • 闭包

    • 内存函数对外层函数非全局变量的引用(使用),就会形成闭包。被引用的非全局变量也称做自由变量,这个自由变量会与内层函数产生一个绑定关系,自由变量不会再内存中消失。(保证数据的安全)

    • 闭包只能存在嵌套函数中

      def make_average():
      l1=[]
      def average(new_price):
      l1.append(new_price)
      total=sum(l1)/len(l1)
      return total
      return average
      avg=make_average()
      print(avg(1000))
      print(avg(2000))
  • 作业

    • 看代码写结果

      def add(n,i):
      return n+i
      def test():
      for i in range(4):
      yield i
      g=test()
      for n in [1,10]:
      g=(add(n,i) for i in g)
      print(list(g))
      ###结果 [20, 21, 22, 23]
      ####解析
      因为第二次循环n一直就是10了
      list(g)=list((add(10,i) for i in add(10,i) for i in test()))
      list(g)=list((add(10,i) for i in add(10,i) for i in test[0,1,2,3]))
      list(g)=list((add(10,i) for i in ([10,11,12,13])
    • 用map来处理字符串列表,把列表中所有人都变成sb,比如fengchao_sb

      name=["zhuxiayu","fengchao","wusir"]
      new_name=map(lambda x:x+"_sb",name)
      print(list(new_name))
      ###结果 ['zhuxiayu_sb', 'fengchao_sb', 'wusir_sb']
    • 用map来处理下述l,然后用lsit得到一个新的列表,列表中每人的名字都是sb结尾

      l=[{"name":"服务器"},{"name":"服务器2"}]
      new_l=map(lambda x:x["name"]+"sb",l)
      print(list(new_l))
      ###结果 ['服务器sb', '服务器2sb']
    • 写代码,最终得到的结果是(每个元组第一个元素>2,第三个*至少是4个)

      l1=[1,2,3,4,5,6,7]
      l2=["oldboy","axle","wusir","白天","天日"]
      tu=("**","***","*****","********")
      new=zip(l1,l2,tu)
      new_list=list(new)
      ret=filter(lambda x:x[0]>2 and len(x[2])>3,new_list)
      print(list(ret))
      ###结果[(3, 'wusir', '*****'), (4, '白天', '********')]
    • 将l1按照列表中每个字典的values大小进行排序,形成一个新的列表

      l1=[{'sales_volumn':0},
      {'sales_volumn':108},
      {'sales_volumn':337},
      {'sales_volumn':475},
      {'sales_volumn':396},
      {'sales_volumn':172},
      {'sales_volumn':9},
      {'sales_volumn':58},
      {'sales_volumn':272},
      {'sales_volumn':456},
      {'sales_volumn':440},
      {'sales_volumn':239},
      ]
      print(list(sorted(l1,key=lambda x:x["sales_volumn"])))
    • 看代码写结果

      v=[lambda :x for x in range(10)]
      print(v)
      print(v[0])
      ##结果:[<function <listcomp>.<lambda> at 0x000002AA60EBE168>, <function <listcomp>.<lambda> at 0x000002AA60EB93A8>, <function <listcomp>.<lambda> at 0x000002AA60FC4C18>, <function <listcomp>.<lambda> at 0x000002AA610B5A68>, <function <listcomp>.<lambda> at 0x000002AA610BC5E8>, <function <listcomp>.<lambda> at 0x000002AA610BCC18>, <function <listcomp>.<lambda> at 0x000002AA610C1EE8>, <function <listcomp>.<lambda> at 0x000002AA610C1438>, <function <listcomp>.<lambda> at 0x000002AA620BF3A8>, <function <listcomp>.<lambda> at 0x000002AA620BF438>]
      <function <listcomp>.<lambda> at 0x000002AA60EBE168>
    • 写一个函数完成三次登录功能,用户的用户名密码从一个文件register中取出,register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行,完成三次实验,三次实验不成功则登录失败,失败则返回false

      def get_user_dict():
      user_dict={}
      with open("register.txt",encoding="utf-8",mode="r") as file:
      for line in file:
      username1,password1=line.strip("\n").split("|")
      user_dict[username1]=password1
      return user_dict
      def log_in():
      user_dict=get_user_dict()
      count=1
      while count<4:
      username=input("please input your name:").strip("") password=input("please input your password").strip("")
      if username in user_dict and password==user_dict[username]:
      print("登录成功")
      return True
      else:
      count+=1
      else:
      return False
      log_in()

python基础 Day13的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

随机推荐

  1. 【Vue组件通信】props、$ref、$emit,组件传值

    1.什么是组件通信 组件间如何通信,也就成为了vue中重点知识,组件通信,涉及到组件之间数据的传递.类似NET POST/GET参数传递. Vue基本的三种传递方式** (props.\(ref.\) ...

  2. Mybatis(五)Spring整合Mybatis之mapper动态代理开发

    要操作的数据库: IDEA创建的Java工程,目录结构如下: 一.导包 1.spring的jar包 2.Mybatis的jar包 3.Spring+mybatis的整合包. 4.Mysql的数据库驱动 ...

  3. Jmeter性能测试使用指南

    图床如果失效,可以关注二维码,公众号查阅. JMeter安装 1.下载地址: https://downloads.apache.org//jmeter/binaries/apache-jmeter-5 ...

  4. PHP操作Redis步骤详解

    一.Redis连接与认证 $redis = new Redis(); //连接参数:ip.端口.连接超时时间,连接成功返回true,否则返回false $ret = $redis->connec ...

  5. python学习笔记1 -- 函数式编程之高阶函数 sorted排序

    python提供了很强大的内置排序函数,妈妈再也不担心我不会写冒泡排序了呀,sorted函数就是这个排序函数,该函数参数准确的说有四个,sorted(参数1,参数2,参数3,参数4). 参数1 是需要 ...

  6. LQB2013A03振兴中华

    最近状态出了点问题呜呜呜,可能是天有点热吧加上有一点点不太舒服,,,稳住啊! 明显一个递归(但是就是不会写) 递归:(一般这种找有多少个的题,返回值都是int) 首先找变化的东西当作参数.(本题是坐标 ...

  7. springmvc的原理与流程

    springMVC中的几个组件: 前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU. 处理器映射器(HandlerMapping):根据URL去查找处理器 处理 ...

  8. Day13_商品详情及静态化

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...

  9. Django学习路22_empty为空,forloop.counter 从1计数,.counter0 从0计数 .revcounter最后末尾数字是1,.revcounter0 倒序,末尾为 0

    当查找的数据不存在,返回为 空时 在 html 中使用 {%empty%} 语句 进行显示 def getstudents(request): students = Student.objects.a ...

  10. Python os.lchmod() 方法

    概述 os.lchmod() 方法用于修改连接文件权限.高佣联盟 www.cgewang.com 只支持在 Unix 下使用. 语法 lchmod()方法语法格式如下: os.lchmod(path, ...