字符串的比较

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相关推荐

  1. Python Day11

    安装 ubuntu 14.04 sudo apt-get install -y mysql-client-5.6 mysql-common-5.6 Q1 忘记root密码 1 : sudo vi /e ...

  2. Python Day11 魔方方法

    Python种的魔方方法 Python种有许多魔方方法供我们使用 魔法方法被双下划线包围,例如__init__. 魔法方法的第一个参数应为cls(类方法) 或者self(实例方法). 下面介绍常见的魔 ...

  3. 跟着太白老师学python day11 可迭代对象和迭代器

    如果对象的属性中有__iter__属性就说明是可迭代的,容器类的数据类型都是可迭代对象 如果对象的属性中既有__iter__属性也有__next__属性,就说明这个对象是迭代器 如何判断一个函数是不是 ...

  4. python Day1作业:用户三次登陆锁定

    点击(此处)折叠或打开 #!/usr/bin/env python # -*- coding:utf8 -*- import os import sys # userfile = file('user ...

  5. python将多个列表合并_Python中多个列表与字典的合并方法

    Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['','',''] b = ['','',''] a += b print(a) >>>['','','' ...

  6. python 之路,Day11 (下)- sqlalchemy ORM

    python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...

  7. Python菜鸟入门:day11文件操作

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  8. python求和函数1-n_PYTHON1.day11(n)

    day10回顾 函数名是变量,它用来绑定"函数" 函数可以作为参数传入另一个函数 函数可以返回另一个函数 函数的嵌套定义 def f1(): def f2(): pass f2() ...

  9. 轩小陌的Python笔记-day11 函数进阶

    day11 函数进阶 目标:掌握函数相关易错点 & 项目开发必备技能. 今日概要: 参数的补充 函数名到底是什么? 返回值和print,傻傻分不清楚. 函数的作用域 1.参数的补充 在函数基础 ...

最新文章

  1. Python程序设计 第六章 函数(续
  2. 关于might_sleep的一点说明【转】
  3. 如何让本机时间与局域网的一台电脑的日期同步?
  4. 时间相差8小时、GMT、UTC、CST、CET关系
  5. 登陆失败bdstoken_解决PanDownload登录提示账号登录失败,获取bdstoken失败问题
  6. 计算机科学与技术专家报告内容,计算机科学与技术专业设计报告大学内容.docx...
  7. 现代c++之线程本地存储thread_local
  8. 【转】Spark源码分析之-scheduler模块
  9. 【FRDM-K64F学习笔记】使用ARM mbed和Keil MDK下载你的第一个程序
  10. 如何检测python是否安装_使用Python检查系统中是否安装了一个软件包?
  11. 22.哈希表(HashTable)
  12. 【Linux】04 实验笔记
  13. 12306抢票源码 java_最新版12306抢票程序源代码
  14. 甘肃康县乡村“蝶变”:北方山沟引来“南方媳妇”
  15. odl源码系列一restconf模块
  16. 微信小程序实现九宫格切图,保存功能!
  17. Python之pandas学习【5】:导入导出数据
  18. SLAM在机器人中的应用
  19. VB.NET的 结构和类
  20. 吴恩达:回顾2021,这些大事件影响了AI这一年

热门文章

  1. 关于数据型驱动自动化测试实现
  2. Nginx屏蔽个别User-Agent蜘蛛访问网站的方法
  3. ConcurrentHashMap 和 Collections.synchronizedMap(map) 比较
  4. window2003 server服务器配置标准
  5. 9月20日云栖精选夜读 | 如何轻松搞定数据科学面试:Python&R语言篇
  6. ip以及端口转发数据、根据端口转发显示内网的web的方法介绍
  7. spark RDD的理解
  8. MOM SMS SharePoint
  9. mogodb集群配置笔记
  10. 技术再好,能阻止暴力视频的疯传吗?