python day11
字符串的比较
1、单个字符的比较就是ascii码的比较(对应的十进制)
'A'->65 'a'->91
--->'a' > 'A'
2、多个字符的字符串比较就是一一对应的单个字符的比较,一旦比较出结果就终止比较
'aBc' < 'aA'
函数的参数
形参与实参
--实参:有实际意义的参数
--在函数调用中,()里面传入的参数
--形参:本身没有意义,有实参对它进行赋值之后就具有意义
--在函数定义过程中,函数名后面()中用来定义函数的参数
形参范畴
def add(n1,n2): #这里的n1,n2本身没有意义,但如果被什么意义的参数赋值,他就具有了什么意义
return n1,n2
实参范畴
print(add(1,2)) #这里的1和2就是实参,实际传入函数的参数
形参是对实参的值拷贝(实参赋值给形参时,两个id地址一样)
当实参是不可变类型时,形参在函数内部发生发生改变对外部的实参没有影响
def fn(num):
num = 20
return num
num = 10
fn(num) #这里的num是实参
print(num) #虽然调用函数内部的num重新赋值,但是10是不可变类型,所以这里的num还是10
当实参是可变类型时,形参在函数内部发生改变,外界的实参随之变化
def fn(num):
num.append(1)
return num
num = [10]
fn(num) #这里的num是实参
print(num) #调用函数内部的num内部发生改变,这里[10]是可变类型,所以这里的num是[10,1]
实参的分类
def fn(n1,n2):
return n1,n2
1、位置实参
--一定按照位置进行传参,且形参和实参的位置必须要一一对应,不然报错
a = 10
b = 20
fn(a,b)
2、关键字实参
--用关键字指名道姓的传参,位置可以颠倒
fn(n1=10,n2=20) =>n1=10,n2=20
fn(n2=20,n1=10) =>n1=10,n2=20
#注:(传参规则)传参时,位置实参必须放在关键字实参之前
形参的分类
1、位置形参(无值位置形参)
可以被位置实参和关键字实参传值,必须传值
2、默认形参
可以被位置实参和关键字实参传值,可以不传值,采用默认值,只在定义的时候赋值一次,我们一般赋值不可变类型
3、可变长位置形参
可以接收位置形参和默认形参没有接收完的值,只能接收位置实参传值,接收数量0~N个,用元组接收,0个就是空元组
4、无值关键字形参
只能被关键字实参传值,必须传值
5、有值关键字形参
只能被关键字实参传值,可以不传值,采用默认值
6、可变长关键字形参
可以接收4和5没有接收完的值,只能接收关键字实参传值,接收数量0~N个,用字典接收,0个就是空字典
函数定义时的声明顺序:位置形参-->默认形参-->可变长位置形参-->无值关键字形参-->有值关键字形参-->可变长关键字形参
#注:1、位置形参传值时一定要按顺序传值,关键字形参传值时可以不按顺序
2、可变长位置形参只能接收位置实参,要想被附上值,前面的默认形参就没有意义。
3、args和kwargs时可变长形参的变量名,所以是可以自定义的,但是我们约定俗成用args和kwargs
常出现的组合
1)def f1(*args,**kwargs): pass #第一类
----------------------------------------------------
2)def f2(a,b=10,**kwargs): pass
3)def f3(a,*args,**kwargs): pass #第二类
----------------------------------------------------
4)def f4(a,*,x,**kwargs): pass
5)def f5(a,*args,x,**kwargs): pass #第三类
打散机制
def fn(*args,**kwargs):
print(args)
print(kwargs)
*单列容器 会打散单列容器 #单列容器在print下也可以打散
作为参数进行传值时,必须在前面加上*,才可让单列容器被打散且全被args接收
**双列容器 会打散双列容器
作为参数进行传值时,必须在前面加上**,才能把双列容器打散并被kwargs接收
案例:
def fn(*args,**kwargs):print(args)print(kwargs) fn((1,2,3),{'a':1,'b':2}) #((1, 2, 3), {'a': 1, 'b': 2})# {} 不加*号都会被作为位置实参被args接收 fn(*(1,2,3),**{'a':1,'b':2}) #(1, 2, 3) 成功打散案例#{'a': 1, 'b': 2}
函数的嵌套调用
在被调用的函数中去调用其他的函数的功能
复用之前已经定义好的函数,功能一定是有重叠
#注:在提前声明的函数中可以嵌套调用之后声明的函数
但是本函数的调用必须要在之后声明的函数(本函数里嵌套的函数)的之后
案例分析:
def max_two(n1,n2): #求两个数的大着if n1 > n2:return n1return n2 print(max_two(10,11)) def max_three(n1,n2,n3): #求三个数的大着a1 = max_two(n1,n2)return max_two(a1,n3) print(max_three(12,11,14)) def max_four(n1,n2,n3,n4): #求四个数的大着a1 = max_three(n1,n2,n3)return max_two(a1,n4) print(max_four(12,123,242,523))
转载于:https://www.cnblogs.com/hesujian/p/10771575.html
python day11相关推荐
- Python Day11
安装 ubuntu 14.04 sudo apt-get install -y mysql-client-5.6 mysql-common-5.6 Q1 忘记root密码 1 : sudo vi /e ...
- Python Day11 魔方方法
Python种的魔方方法 Python种有许多魔方方法供我们使用 魔法方法被双下划线包围,例如__init__. 魔法方法的第一个参数应为cls(类方法) 或者self(实例方法). 下面介绍常见的魔 ...
- 跟着太白老师学python day11 可迭代对象和迭代器
如果对象的属性中有__iter__属性就说明是可迭代的,容器类的数据类型都是可迭代对象 如果对象的属性中既有__iter__属性也有__next__属性,就说明这个对象是迭代器 如何判断一个函数是不是 ...
- python Day1作业:用户三次登陆锁定
点击(此处)折叠或打开 #!/usr/bin/env python # -*- coding:utf8 -*- import os import sys # userfile = file('user ...
- python将多个列表合并_Python中多个列表与字典的合并方法
Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['','',''] b = ['','',''] a += b print(a) >>>['','','' ...
- python 之路,Day11 (下)- sqlalchemy ORM
python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...
- Python菜鸟入门:day11文件操作
写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...
- python求和函数1-n_PYTHON1.day11(n)
day10回顾 函数名是变量,它用来绑定"函数" 函数可以作为参数传入另一个函数 函数可以返回另一个函数 函数的嵌套定义 def f1(): def f2(): pass f2() ...
- 轩小陌的Python笔记-day11 函数进阶
day11 函数进阶 目标:掌握函数相关易错点 & 项目开发必备技能. 今日概要: 参数的补充 函数名到底是什么? 返回值和print,傻傻分不清楚. 函数的作用域 1.参数的补充 在函数基础 ...
最新文章
- Python程序设计 第六章 函数(续
- 关于might_sleep的一点说明【转】
- 如何让本机时间与局域网的一台电脑的日期同步?
- 时间相差8小时、GMT、UTC、CST、CET关系
- 登陆失败bdstoken_解决PanDownload登录提示账号登录失败,获取bdstoken失败问题
- 计算机科学与技术专家报告内容,计算机科学与技术专业设计报告大学内容.docx...
- 现代c++之线程本地存储thread_local
- 【转】Spark源码分析之-scheduler模块
- 【FRDM-K64F学习笔记】使用ARM mbed和Keil MDK下载你的第一个程序
- 如何检测python是否安装_使用Python检查系统中是否安装了一个软件包?
- 22.哈希表(HashTable)
- 【Linux】04 实验笔记
- 12306抢票源码 java_最新版12306抢票程序源代码
- 甘肃康县乡村“蝶变”:北方山沟引来“南方媳妇”
- odl源码系列一restconf模块
- 微信小程序实现九宫格切图,保存功能!
- Python之pandas学习【5】:导入导出数据
- SLAM在机器人中的应用
- VB.NET的 结构和类
- 吴恩达:回顾2021,这些大事件影响了AI这一年