函数的返回值,使用return返回数据,可以同时返回多个数据,将会以元组的形式返回到函数的调用处。return 具有返回数据和中止程序的作用!
return 后不加任何数据则返回None ,判定为False。
关于【组包与解包】:
组包:python解释器自动将多个数据组装到一个容器中
解包:将容器中的多个数据拆出来
1.
# 组包: 解释器把1,2,3自动组包成一个元组,然后赋值给a,a的类型就是元组类型的
  a = 1,2,3 # 相当于 a = (1,2,3)
  print(a) # (1, 2, 3)
  print(type(a)) # <class 'tuple'>

#解包: 解释器会自动对元组(1,2)进行 解包,然后把1赋值给m,把2赋值给n
  m,n,k = (1,2,3) # m=1,n=2,k=3
  print(m) # 1
  print(n) # 2
  print(k) # 3
函数使用参数可以使函数变得更加通用,增加扩展性。参数的顺序有讲究,定义函数时,【形参顺序】
def func(位置参数,可变位置参数,默认参数,可变关键字参数):
  pass
func(*args,**kwargs) 与 func(args,kwargs)返回的数据不同,* 或者**具有解包的作用,*用来将普通参数元组解开,**用来将关键字参数字典解开。
**kwargs只能在调用函数时使用。
1.
def func1(*args ,**kwargs):
  print(args) # (10, 20) # ( (10, 20) , {'n': 30, 'm': 40})
  print(kwargs) # {'n': 30, 'm': 40}

def func2(* args ,** kwargs):

  #print(args) # (10, 20)
  #print(kwargs) # {'n': 30, 'm': 40}

  #解包:* args -> *(10,20)->10,20
  #解包:** kwargs -> **{'n': 30, 'm': 40}-> n=30,m=40
  #func1(args,kwargs) # func1( (10, 20) , {'n': 30, 'm': 40}) 结果为:((10, 20), {'n': 30, 'm': 40}) {}

  func1(*args,**kwargs) # func1( 10, 20 , n=30,m=40) 结果为:(10, 20) {'n': 30, 'm': 40}

func2(10,20,n=30,m=40) # func2((10,20), {'n': 30, 'm': 40})
2.
a = range(8)
print(*a) # 解包 0 1 2 3 4 5 6 7
b = [1,2,3]
print(*b) #1 2 3


局部变量,与全局变量,直接在函数体内定义(局部变量)与函数体外定义(全局变量)的相同的变量,则局部变量会将全局变量覆盖,且只能
在该函数体内使用该变量。若想在函数体内修改全局变量,则在函数体内用global声明该变量 ,声明格式为:global 变量名。
关于【引用】,分可变类型与不变类型,且python中参数传递的方式是【址传递方式】,传递数据,传递的是数据对应的地址。
关于引用的详细,参考另一篇专门关于引用理解的随笔。
【列表生成式】 定义格式 list1 = [i for i in rang(5)],list2 = [i for i in range(5) if i not(i % 2)],
list3 = [(i,j) for i in range(5) for j in range(5)]。
【匿名函数】 定义格式: lambda a,b: a + b , a,b为形参,返回的数据为a+b。匿名函数只能用来执行一些简单的操作。
当对元素为字典的列表进行排序时,使用匿名函数,很方便。
1.
stus = [
{"name": "zhangsan", "age": 18},
{"name": "lisi", "age": 19},
{"name": "wangwu", "age": 17}
]
#对该列表按照age进行排序
#第一种方法
def ke(x):
  return x['age']
stus.sort(key = ke)
print(stus)
#第二种方法
stus.sort(key = lambda x : x["age"])
print(stus)
【递归函数】 在函数内自己调用自己的函数(效率低)。
开发递归函数的条件:
1.在函数内部自己调用自己 (保证函数可以跳进去)
2.给递归设置一个中止的条件(保证函数可以跳出去)
除了在最近写的随笔外还有一些易错点:
1.
list2 =[] # 空值默认为False
for i in list2 : # 因为list2为空 所以根本无法遍历list2
  print(type(i["姓名"])) # 这个pritn()语句无法执行

for i in list2:
  print("进入")
else:
  print("未进入")  # 未进入

if not list2:
  print("yes") #yes
2.如果写int("1.0")就会错误,因为python假设需要进行int转型的字符串仅仅包含数字,这时候用int(float("1.0"))就可以完成转化了。

python 06 8/28-8/30的更多相关文章

  1. Python爬虫入门教程 62-100 30岁了,想找点文献提高自己,还被反爬了,Python搞起,反爬第2篇

    学术搜索 学习理论的知识少不了去检索文献,好多文献为你的实操提供了合理的支撑,我所在的大学内网默认是有知网账户的,非常NICE 今天要完成的网站是 http://ac.scmor.com/ Googl ...

  2. python从入门到精通之30天快速学python视频教程

    点击了解更多Python课程>>> python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv pyth ...

  3. python全栈考题 3.30

    1.执行Python 脚本的两种方式 1.>>python ../pyhton.py      2. >>python.py   #必须在首行有 #!/usr/bin/env ...

  4. 孤陋寡闻了吧?Python 居然可以做这30件神奇好玩的事情(附教程)

    知乎上有个浏览超过400万的问题:可以用 Python 编程语言做哪些神奇好玩的事情? 我先举一个很不专业的栗子...... 然后再找几个人抬一堆例子来...... 不是很稀饭<复联>嘛, ...

  5. opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程

    很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...

  6. 2018最新Python小白入门教程,30天学会Python

    随着Python的技术的流行,Python在为人们带来工作与生活上带来了很多的便捷,因为Python简单,学起来快,也是不少新手程序员入门的首选语言.作为一名Python爱好者,我也想跟大家分享分享我 ...

  7. *【Python】【demo实验30】【练习实例】【使用Turtle实现实时时钟效果】

    目的: 使用Turtle实现实时时钟效果 源代码: # encoding=utf-8 # -*- coding: UTF-8 -*- import turtle from datetime impor ...

  8. Python自动化运维之30、Flask框架

    Flask 官网:http://flask.pocoo.org/ flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是 ...

  9. 剑指offer——python【第28题】数组 中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

随机推荐

  1. js页面字段的必填验证方法

    https://blog.csdn.net/fn_2015/article/details/73498462 <script type="text/javascript" s ...

  2. JS判断字符串长度(英文占1个字符,中文汉字占2个字符)

    //计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i ...

  3. 喵哈哈村的魔法考试 Round #5 (Div.2) ABCC2

    官方题解:http://www.cnblogs.com/qscqesze/p/6516139.html 喵哈哈村的狼人杀大战(1) 描述 喵哈哈村最近热衷于玩一个叫做狼人杀的游戏! 张小田今天她抽到的 ...

  4. SpringMVC之基于注解的Controller

    参考博客:https://www.cnblogs.com/qq78292959/p/3760560.html Controller注解: 传统风格的Controller需要实现Controller接口 ...

  5. C. Jon Snow and his Favourite Number DP + 注意数值大小

    http://codeforces.com/contest/768/problem/C 这题的数值大小只有1000,那么可以联想到,用数值做数组的下标,就是类似于计数排序那样子.. 这样就可以枚举k次 ...

  6. Excel数据直接到DataTable--->DB

    1) Excel数据直接导入到临时生成的DataTable using (OleDbConnection selectConnection = new OleDbConnection("Pr ...

  7. LinQ的使用

    LinQ:LinQ to Sql类 它是一个集成化的数据访问类,微软将原本需要我们自己动手去编写的一些代码,集成到了这个类中,会自动生成. LinQ的创建: 添加项——添加新项(LinQ to Sql ...

  8. oracle 函数、聚焦函数

    oracle 常用的函数 以及 聚焦函数 --1,字符函数 --当没有表可以用个的时候oracle自带一个虚表dual -- || 表示连接符号 将字符串连接到一起 式显示 Lower(char):将 ...

  9. iOS 二维码的生成 QREncoder

    生成二维码: 在生成二维码的库中QREncoder最为常见,但是由于中文字符的特殊性,生成中文的时候有时会出现一定的错误,所以建议使用libqrencode,是一个纯C编写的类库. 以libqrenc ...

  10. JQuery日期选择器插件date-input

    JQuery日期选择器插件之date-input 官方网站:http://jonathanleighton.com/projects/date-input/ 下载地址: http://github.c ...