第3课  模块

1、模块(module)

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

例:first.py

def laugh():
print '哈哈哈哈哈'

second.py

 import first
for i in range(5):
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、关键字传递:根据参数的名字传递参数,关键字传递不遵守位置对应关系,如:

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

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

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

这样写会报错

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

2、参数的默认值

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

def f(a,b,c=10):
return a+b+c 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 def func(*name):
print name
func(1)
func(2,3,4,5)

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

例2:包裹关键字传递
def func1(**dict):
print type(dict)
print dict
func1(a=1,b=2)
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、解包裹

def func(a,b,c):
print a,b,c args = (1,3,4)
dict = {'a':1,'b':2,'c':3}
func(*args)
func(**dict) 输出:
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. eclipse导入项目,项目名出现红叉的情况(修改版)

    转至:http://blog.csdn.net/niu_hao/article/details/17440247 今天用eclipse导入同事发给我的一个项目之后,项目名称上面出现红叉,但是其他地方都 ...

  2. 聊天软件项目TCP升级版

    //聊天软件项目TCP升级版 import java.io.*; import java.net.*; class TcpClient2 { public static void main(Strin ...

  3. 5. Longest Palindromic Substring(最长回文子串 manacher 算法/ DP动态规划)

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

  4. leetcode每日一题——反转整数

    题目: 反转整数 难度: 简单 描述: 给定一个 32 位有符号整数,将整数中的数字进行反转. 解法: class Solution { public int reverse(int x) { //i ...

  5. Firebug入门指南(转)

    本文转自:http://www.ruanyifeng.com/blog/2008/06/firebug_tutorial.html 作者: 阮一峰 日期: 2008年6月 8日 据说,对于网页开发人员 ...

  6. python学习笔记:函数参数

    1. 位置参数:一般的参数 2. 默认参数: def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s 参数里有默认赋 ...

  7. Spring 之自动化装配 bean 尝试

    [Spring之自动化装配bean尝试] 1.添加dependencies如下所示(不是每一个都用得到 <dependencies> <dependency> <grou ...

  8. python中访问限制

    在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...

  9. sublime text3 破解, 中文乱码支持, 设置

    1. 激活 菜单: Help -> Enter License, 弹出对话框输入激活码确认(Use License):如下图:. 激活码: ----- BEGIN LICENSE ----- A ...

  10. github Git-fork-别人的项目后更新代码的方法

     用github还处于菜的阶段,遇到问题简单记录.   举个例子,需要 fork 这个项目 https://github.com/tarobjtu/WebFundamentals.git 点击 for ...