第3课  模块

1、模块(module)

Python中一个.py文件就是一个模块,可以调用其它文件中的程序。

例:first.py

  1. def laugh():
  2. print '哈哈哈哈哈'

second.py

  1. import first
  2. for i in range(5):
  3. first.laugh()

2、搜索路径

Python会按照如下顺序搜索它需要的模块

1)程序所在文件夹;2)Pythonpath中包括的路径;3)标准库安装路径

3、模块包

将功能类似的模块放在一个文件夹中,如this_dir,构成1个模块包,可以通过

import this_dir.module  引入想要的模块

4、Python中还有其它引入方式:

import a as b  #引入模块a,并重命名为b

from a import function  #引入模块a中的对象function,使用对象时不用再说明模块,直接用function即可

from a import *  #引入模块a中所有的对象,使用对象时不用再说明模块,直接使用对象即可,不用再a.对象

这样方便以后程序的书写

模块包之间的模块相互引用,与上述相同

from packageA import A或者

import packageA.A

第4课 函数的参数

1、关键字传递:根据参数的名字传递参数,关键字传递不遵守位置对应关系,如:

  1. def test(a,b,c):
  2. return a+b+c
  3. print test(a=1,b=2,c=3)

关键字传递和值传递可以混用,但值传递参数要放在关键字传递的前面,且混合时是按照顺序的,如下面的1指定传给a:

  1. print test(1,b=1,c=2)

这样写会报错

  1. def test(a,b,c):
  2. print a,b,c
  3. return a+b+c
  4. print test(1,a=2,b=3)

2、参数的默认值

定义函数时,使用形如a=19的方式,可以给参数赋予默认值(default)。如果该参数没传值,将使用该默认值。

  1. def f(a,b,c=10):
  2. return a+b+c
  3.  
  4. print(f(3,2))
    print(f(3,2,1))
    输出:
    15
    6

在第一次调用函数f时, c没有被赋值,c将使用默认值10.

第二次调用函数的时候,c被赋值为1,不再使用默认值。

有默认值的函数参数只能放在参数的最后:如 def(x,y=1)有效,def(y=1,x)无效

3、包裹(package)值传递

创建函数时,有时候不确定有多少个参数,此时包裹值传递会有很大用处

  1. 1:包裹位置传递
    1 def func(*name):
  2. print name
  3. func(1)
  4. func(2,3,4,5)

在func的参数列表中,所有的参数被name收集,根据位置整合为元组,为了提醒Python,name是包裹值传递的元组名,要在前面加*

  1. 2:包裹关键字传递
  2. def func1(**dict):
  3. print type(dict)
  4. print dict
  5. func1(a=1,b=2)
  6. func1(a=1,b=2,c=3)
    输出:
    <type 'dict'>
    {'a': 1, 'b': 2}
    <type 'dict'>
    {'a': 1, 'c': 3, 'b': 2}

在func1中,所有的参数被dict收集,整合为一个字典,为了提醒Python,dict是包裹值传递的字典名,要在前面加**

4、解包裹

  1. def func(a,b,c):
  2. print a,b,c
  3.  
  4. args = (1,3,4)
  5. dict = {'a':1,'b':2,'c':3}
  6. func(*args)
  7. func(**dict)
  8.  
  9. 输出:
    1 3 4
    1 2 3

传递元组时,让元组的每个参数对应一个位置参数,调用func时,参数前面加* ,是为了提醒Python,把args分割为三个数据,分别传给a,b,c

传递字典,把字典的值作为关键字传给函数参数

5、定义或者调用参数时,参数的几种传递方式可以混合,基本原则是,先位置(值传递),再关键字,再包裹位置,再包裹关键字

Python基础学习(第5天)的更多相关文章

  1. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  5. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  6. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  7. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  8. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

  9. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  10. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

随机推荐

  1. 《Redis官方文档》用Redis构建分布式锁

    用Redis构建分布式锁 在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简 ...

  2. java 多线程 day01 创建线程

    线程,即代码的执行路径java 面向对象编程.所以线程在java中也是用对象来表示的,创建线程对象的类就是 Thread如下代码即开启一个新的线程,通过线程对象的start方法,即可启动线程 Thre ...

  3. 浅谈HTML文档模式

    不知道爱多想的你有没有在编写HTML代码时思考过 <!DOCTYPE html> 或是这一长串看都看不懂的 <!DOCTYPE HTML PUBLIC "-//W3C//D ...

  4. MTK平台环境搭建---Ubuntu Linux 下执行sudo apt-get install提示“现在没有可用的软件包……

    问题描述: sudo apt-get install openssh-server 正在读取软件包列表... 完成正在分析软件包的依赖关系树 Reading state information... ...

  5. Hbase 学习笔记5----hbase region, store, storefile和列簇的关系

    The HRegionServer opens the region and creates a corresponding HRegion object. When the HRegion is o ...

  6. 从零到一创建ionic移动app:基础开发环境搭建

    myAPP项目是在Ubuntu14.04下创建   本项目开发node 4.5/cordova 6/ionic 2   第一步 安装nodejs npm install -g n n v4.5.0 使 ...

  7. cdojR - Japan

    地址:http://acm.uestc.edu.cn/#/contest/show/95 题目: R - Japan Time Limit: 3000/1000MS (Java/Others)     ...

  8. thinkphp api架构搭建

    1.结构搭建 模块下面使用 controller , model ,service,validate分别对应的作用 controller控制器里面可以进行分版本 v1,v2之类的,不过要访问通必须配置 ...

  9. 较常用的Math方法及ES6中的扩展

    记录下与Math有关的常用方法,如:求最大值.最小值等,或者是保留几位数啥的 1.数据 let floatA = 2.325232; let floatB = 2.3456; let temporar ...

  10. 自定义Checkbox和Radiobox

    在线演示 本地下载