day11

函数名的第一类对象及使用

1、可以当作值被赋值给变量

  1. def func():
  2. print(1)
  3. print(func)
  4. a = func
  5. a()

2、当作元素存放在容器中

  1. def func():
  2. print(1)
  3. lst = [func,func,func]
  4. for i in lst:
  5. i()

3、函数名可以当作函数的参数

  1. def func(f):
  2. f()
  3. def foo():
  4. print(123)
  5. func(foo)
  6. ---------------------
  7. def func(f):
  8. f()
  9. def foo():
  10. print('is foo')
  11. func(foo)

4、函数名可以当作函数的返回值

  1. def func():
  2. def foo():
  3. print(123)
  4. return foo
  5. a = func()
  6. a()
  7. -----------------------------
  8. def f1():
  9. def f2():
  10. print(1)
  11. def f3():
  12. print(2)
  13. return f2
  14. ret = f2()
  15. return ret
  16. print(f1())

f格式化

python3.6版本以上才能使用

  • 填充字符串
  1. s = f"你好{'常鑫'}"
  2. s1 = F"你好{'常鑫'}"
  • 填充变量
  1. s1 = f"你还是挺好的{s}"
  2. print(s1)
  • 填充计算公式
  1. s1 = f"{34+11}"
  2. print(s1)
  • 填充表达式
  1. a = 10
  2. b = 20
  3. s1 = f"{a if a>b else b}"
  4. print(s1)
  • 填充大括号(两个大括号算一个)
  1. s1 = f"{{{{{'常鑫'}}}}}"
  2. print(s1)
  3. --------------------
  4. s1 = f"{'{}{}{}{}{}'}"
  5. print(s1)

其他填充

  1. s1 = f"{print(123)}"
  2. print(s1)
  3. ---------------------------
  4. def prin(a):
  5. print(a)
  6. s1 = f"{prin(123)}"
  7. prin(s1)
  8. ---------------------------
  9. def foo():
  10. def func():
  11. a = 1
  12. return a
  13. return func()
  14. s1 = f"{foo()}"
  15. print(s1)
  16. ---------------------------
  17. lst = [1,3,4,5,6]
  18. s1 = f"{lst[0:5]}"
  19. print(s1) # [1,3,4,5,6]
  20. ---------------------------
  21. dic = {"key1":123,"key2":234}
  22. s1 = f"{dic['key2']}"
  23. print(s1)

%s,format,f都是格式化,都可实现效果。

迭代器

可迭代对象

list、dict,str,tuple,set——可迭代对象

方法一:

  1. list.__iter__()
  2. dict.__iter__()
  3. str.__iter__()
  4. set.__iter__()
  5. tuple.__iter__()

方法二:

查看源码

方法三:

  1. print(dir(list))

官方声明只要具有______iter__()方法的就是可迭代对象

  • 可迭代对象的优点:

​ 1、使用灵活

​ 2、直接查看值

  • 可迭代对向的缺点:

​ 消耗内存,不能迭代取值

list,tuple,str —— 索引

dict ——键

set——直接取值

迭代器

官方声明只要具有______iter______()方法和______next______()方法就是迭代器

  1. f = open("xxxx",'w')
  2. f.__iter__()
  3. f.__iter__()
  • 优点:节省内存,惰性机制

  • 缺点:使用不灵活,操作比较繁琐,不能直接查看全部的值

  • 迭代器的特性:

    ​ 1、一次性的(用完就没有了)

    ​ 2、不能逆行(不能后退)

    ​ 3、惰性机制(节省内存):要一个给一个,不要就不给

  • 当容器中数据量较大的时候使用迭代器

  1. lst = [1,2,3,4,55]
  2. new_list = lst.__iter__() # 将可迭代对象转换成迭代器
  3. -----------------------------
  4. new_list.__iter__()
  5. new_list.__next__()
  6. ----------------------
  7. s = '123455'
  8. new_s = s.__iter__() # 将可迭代对象转换成迭代器
  9. print(new_s)
  10. new_s.__iter__()
  11. new_s.__next__()
  12. ------------------
  13. new_s = s.__iter__() # 将可迭代对象转换成迭代器
  14. print(new_s)
  15. new_s.__iter__()
  16. print(new_s.__next__())
  17. print(new_s.__next__())
  18. print(new_s.__next__())

for循环

  1. s = "12343" # 更改版for的本质
  2. s = [1,2,3,4,5,7]
  3. count = len(s)
  4. new_s = s.__iter__()
  5. while count:
  6. print(new_s.__next__())
  7. count -= 1
  8. --------------------------------
  9. s = "12345"
  10. new_s = s.__iter__()
  11. while True:
  12. try:
  13. print(new_s.__next__()) # for真实本质
  14. except StopIteration:
  15. break
  16. ----------------------------
  17. 万能报错
  18. # except Exception:
  19. print('我是万能的!')
  20. break

递归

有效递归:

  • 不断调用自己本身(自己调用自己)
  • 有明确的终止条件

递:一直执行直到碰到结束条件

归:从结束条件开始往回退

官方声明:最大层次(1000)可以修改,实际测试(998或者997)

  1. def func():
  2. print(123)
  3. func()
  4. func()
  5. def age(n): # 1,2,3
  6. if n == 3:
  7. return "猜对了"
  8. else:
  9. age(n+1)
  10. print(age(1))
  11. def age2(n):
  12. if n == 3:
  13. return "猜对了"
  14. def age1(n):
  15. if n == 3:
  16. return "猜对了"
  17. else:++
  18. age2(n+1)
  19. def age(n):
  20. if n == 3:
  21. return "猜对了"
  22. else:
  23. age1(n+1)
  24. age(1)
  25. -----------------------------------
  26. 1.宝元 18-2-2-2
  27. 2.太白 18-2-2
  28. 3.wusir 18-2
  29. 4.alex 18
  30. def age(n):
  31. if n == 4:
  32. return 18
  33. else:
  34. return age(n+1)-2
  35. print(age(1))
  36. def age4(n):
  37. if n == 4:
  38. return 18
  39. def age3(n):
  40. if n == 4: # 问的是不是第四个了
  41. return 18
  42. else:
  43. return age4(n+1)-2
  44. def age2(n):
  45. if n == 4: # 问的是不是第四个了
  46. return 18
  47. else:
  48. return age3(n+1)-2
  49. def age1(n):
  50. if n == 4: # 问的是不是第四个了
  51. return 18
  52. else:
  53. return age2(n+1)-2
  54. print(age1(1))

day11——函数名的使用、f格式化、迭代器、递归的更多相关文章

  1. Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归

    Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...

  2. 函数的第一类对象,f格式化,迭代器以及递归

    函数名的第一类对象及使用,f格式化以及迭代器 1.函数的第一类对象 第一类对象 --特殊点 1.可以当作值被赋值给变量 def func(): print(1) a = func a() 2.可以当作 ...

  3. python函数知识三 函数名的使用、格式化、递归

    12.函数名的使用 函数是第一类对象 函数名可以当做值被赋值给变量 def func(): print(1) return a = func print(func) print(a) a() 函数名可 ...

  4. Python迭代器(函数名的应用,新版格式化输出)

    1. 函数名的运用 ​ 你们说一下,按照你们的理解,函数名是什么? ​ 函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值:但是作为函数名他也有特殊的功能 ...

  5. python基础学习Day11 函数名的应用、闭包、迭代器

    一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): ...

  6. python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)

    一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面 ...

  7. python基础之函数名的使用,闭包以及迭代器

    内容梗概: 1. 函数名的使⽤用以及第⼀一类对象 2. 闭包 3. 迭代器 1.函数名一. 函数名的运⽤.函数名是一个变量, 但它是⼀个特殊的变量, 与括号配合可以执行函数的变量.1.1 函数名的内存 ...

  8. python值函数名的使用以及闭包,迭代器

    一.函数名的运用 函数名就是一个变量名,但它是一个特殊的变量名,是一个后面加括号可以执行函数的变量名. def func(): print("我是一个小小的函数") a = fun ...

  9. 跟着太白老师学python day11 函数名的应用 globals(), locals()

    1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...

随机推荐

  1. Java自学-集合框架 ArrayList常用方法

    ArrayList常用方法 步骤 1 : 增加 add 有两种用法: 第一种是直接add对象,把对象加在最后面 heros.add(new Hero("hero " + i)); ...

  2. 关于BFS+异或(C++)

    今天早上,我们做了场比赛,里面有一个题目是这样的.. 题目大意:        随着马场的繁荣,出现了越来越多的新马种.种族之间的沟通不畅严重影响了马场的和谐.这时,科学家发明了马语翻译机器人,正好可 ...

  3. 实验6:Mapreduce实例——WordCount

          实验目的1.准确理解Mapreduce的设计原理2.熟练掌握WordCount程序代码编写3.学会自己编写WordCount程序进行词频统计实验原理MapReduce采用的是“分而治之”的 ...

  4. curl tftp libcurl 功能使用

    #include <curl/curl.h> static size_t read_callback(void *ptr, size_t size, size_t nmemb, void ...

  5. 动态样式语言less初识

    资料参考与http://lesscss.cn/ Bootstrap--(less)下载安装配置 http://lesscss.cn Less使用两种方法 (1)在客户端使用LESS--学习 编写 x. ...

  6. Linux Kernel PANIC(三)--Soft Panic/Oops调试及实例分析【转】

    转自:https://blog.csdn.net/gatieme/article/details/73715860 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...

  7. kolla部署openstack allinone,报错 ImportError: cannot import name decorate

    使用 kolla-ansible 部署 opnenstack:stein,最后无法导入变量脚本,报错信息如下: [root@kolla ~]# . /etc/kolla/admin-openrc.sh ...

  8. python中property简单使用与实现

    property简单使用 class P: """ property简单使用 """ def __init__(self,name): se ...

  9. 01-MySQL 大纲介绍

    MySQL 大纲介绍 1.官方定义的MySQL DBA工作内容 (1)运维DBA 初级:各版本.各平台安装搭建.升级 中级:体系结构原理.基础管理(启动关闭.初始化配置文件管理.多实例管理.用户权限管 ...

  10. 005-OpenStack-网络服务

    OpenStack-网络服务 [基于此文章的环境]点我快速打开文章 1.控制节点(controller) 1.1 创库授权 neutron mysql CREATE DATABASE neutron; ...