学习笔记《简明python教程》

体会:言简意赅,很适合新手入门

2018年3月14日21:45:59###

1、global 语句

在不使用 global 语句的情况下,不可能为一个定义于函数之外的变量赋值;

如果外面存在全局变量,则将全局变量作用域拿过来;

如果外面不存在这个全局变量,则认为是创建一个全局变量;

适用于整型,字符串,但字典 列表 类,不适用,局部可以修改全局

  1. x = 50
  2. def func():
  3. global x
  4. print('x is', x)
  5. x = 2
  6. print('Changed global x to', x)
  7. func()
  8. print('Value of x is', x)

输出:

  1. $ python function_global.py
  2. x is 50
  3. Changed global x to 2
  4. Value of x is 2
2、关键字参数

如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值——这就是关键字参数(Keyword Arguments)——我们使用命名(关键字)而非位置(位置参数调用)来指定函数中的参数。

这样做有两大优点:

  • 我们不再需要考虑参数的顺序,函数的使用将更加容易
  • 我们可以只对那些我们希望赋予的参数以赋值,只要其它的参数都具有默认参数值

调用时,默认参数非必须传递,关键字参数只能放在位置参数后面。

3、可变参数#####

想定义的函数里面能够有任意数量的变量,也就是参数数量是可变的,这可以通过使用星号来实现

*args, **kw

参数前面加了一个*号。在函数内部,参数args接收到的是一个元组tuple,即接收N个位置参数,转换为元组的形式;

参数前面加了两个**号,允许你传入0个或任意个含参数名的关键字参数,这些关键字参数在函数内部自动组装为一个dict,即把N个关键字参数,转换成字典的形式;

*args,可以直接接收元组,前面加*

**kw,可以直接接受字典,前面加**

可变参数也不能在位置参数的前面

4、Return返回值
  • return; 表示返回 None,None 在 Python 中一个特殊的类型,代表着虚无;
  • 不写return,也表示返回None,每一个函数都在其末尾隐含了一句 return None,除非你写了你自己的 return 语句;
  • 函数可以返回多个值,实际上是tuple元组。也可以在不同的逻辑分支中返回不同类型的值
5、文档字符串DocString

该文档字符串所约定的是一串多行字符串,其中第一行以某一大写字母开始,以句号结束。第二行为空行,后跟的第三行开始是任何详细的解释说明。

  • 通过使用函数的 __doc__属性来获取函数 print_max的文档字符串属性
  • Python的help()函数,就是取得函数的 __doc__ 属性
  1. def print_max(x, y):
  2. '''打印两个数值中的最大数。
  3. 这两个数都应该是整数'''
  4. # 如果可能,将其转换至整数类型
  5. x = int(x)
  6. y = int(y)
  7. if x > y:
  8. print(x, 'is maximum')
  9. else:
  10. print(y, 'is maximum')
  11. print_max(3, 5)
  12. print(print_max.__doc__)#打印帮助
  13. help(print_max)
  14. print(__name__)

输出

  1. 5 is maximum
  2. 打印两个数值中的最大数。
  3. 这两个数都应该是整数
  4. Help on function print_max in module __main__:
  5. print_max(x, y)
  6. 打印两个数值中的最大数。
  7. 这两个数都应该是整数
  8. __main__
  9. >>>
6、os模块
  1. import os;
  2. print(os.getcwd())#查看你的程序目前所处在的目录
  1. import sys;
  2. print(sys.argv) #命令行参数,返回列表
  3. print(len(sys.argv)) #参数个数
7、按字节码编译的.pyc 文件

导入一个模块是一件代价高昂的事情,因此 Python 引入了一些技巧使其能够更快速的完成。其中一种方式便是创建按字节码编译的(Byte-Compiled)文件,这一文件以 .pyc 为其扩展名,是将 Python 转换成中间形式的文件(还记得《介绍》一章中介绍的 Python 是如何工作的吗?)。这一 .pyc 文件在你下一次从其它不同的程序导入模块时非常有用,它将更加快速,因为导入模块时所需要的一部分处理工作已经完成了。同时,这些按字节码编译的文件是独立于运行平台的

8、from..import 语句

一般来说,应该尽量避免使用 from...import 语句,而去使用 import 语句。这是为了避免在你的程序中出现名称冲突,同时也为了使程序更加易读

9、模块的 name

每一个 Python 模块都定义了它的 name 属性。如果它与 main 属性相同则代表这一模块是由用户独立运行的

  1. if __name__ == '__main__':
  2. print('This program is being run by itself')
  3. else:
  4. print('I am being imported from another module')
10、dir 函数

内置的 dir() 函数能够返回由对象所定义的名称列表。 如果这一对象是一个模块,则该列表会包括函数内所定义的函数、类与变量

  1. # 创建一个新的变量 'a'
  2. >>> a = 5
  3. >>> dir()
  4. ['__builtins__', '__doc__', '__name__', '__package__', 'a']
  5. # 删除或移除一个名称
  6. >>> del a
  7. >>> dir()
  8. ['__builtins__', '__doc__', '__name__', '__package__']

dir() 函数能对任何对象工作。例如运行 dir(str) 可以访问 str(String,字符串)类的属性,同时,还有一个 vars() 函数也可以返回给你这些值的属性,但只是可能,它并不能针对所有类都能正常工作。

11、包

包是指一个包含模块与一个特殊的 init.py 文件的文件夹,后者向 Python 表明这一文件夹是特别的,因为其包含了 Python 模块。包是一种能够方便地分层组织模块的方式。

学习笔记《简明python教程》的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. 新系统centos7重启网络报错

    场景: 在不知名云上新弄的centos7,改了IP之后启动不起来,使用systemctl status network查看结果如下:       排查过程:   1)NetworkManager是否关 ...

  2. Azure Redis Cache (5) Redis Cache Cluster集群模式

    <Windows Azure Platform 系列文章目录> Redis Cluster 3.0之后的版本,已经支持Redis Cluster集群模式,Redis Cluster采用无中 ...

  3. 【C++】vector内存机制和性能分析

    转自:https://blog.csdn.net/mfcing/article/details/8746256 一些好的公司校园招聘过程中(包括笔试.面试环节),经常会涉及到STL中vector的使用 ...

  4. 创建一个HTTP接口测试

    jmeter Apache JMeter是Apache组织开发的基于Java的压力测试工具. Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对 ...

  5. 如何判断win10 和office的版本

    1:区分win10的版本 2:查询office 的版本

  6. javascript常用工具类整理(copy)

    JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串 return Object.prototype.to ...

  7. css变换与动画详解

    举个栗子:--------元素整体居中.box{     position:absolute;top:50%;left:50%;    width:50px;    height:50px;    t ...

  8. Phpstorm 与 服务器 同步 代码

    链接:(自己领悟就好了) Phpstorm同步代码

  9. BZOJ 4584 luogu P3643: [Apio2016]赛艇

    4584: [Apio2016]赛艇 Time Limit: 70 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 在首尔 ...

  10. 注解_Annotation

    ---恢复内容开始--- 一.什么是注解 注解,英文Annotation,它不是程序本身,是对程序的解释,在这里我会想到为什么不能使用注释呢,因为注解是关于程序对信息的处理的流程的一些说明,而且格式也 ...