在python的数据类型中,整数、字符串、元组是不可变的;而列表、字典是可变的。所以不用C的思维来修改一个整数,它相当于重新定义了一个整数(原来的被覆盖掉了),名字和原来一样,但与前面的同名变量没有一点关系了。同理作为函数时这些类型作为参数,函数调用完毕是值时不可能改变的。

一 函数中的参数:

1.1 关键字参数:就是加上关键字后参数的顺序可以改变,如def func(a,b)  ,调用时func(b=x,a=y)

1.2默认参数:必须放在最右边,不可变时用缺省值

1.3可变参数:放在最右边,加“*”默认是可变的元组(多个变量);加“**”默认是可变的字典(多个键值对)

二 匿名函数:就是用lambda表示而非标准的def,不同于c的inline

三 作用域:以 L(局部,若调用全局的需要加关键字global) –> E(闭包函数外的函数中(若要调用嵌套外层的变量用关键字nonlocal) –> G(全局) –> B(内建作用域) 的规则查找

__name__ 属性

  每个模块都有一个 __name__ 属性,当其值是 '__main__' 时,表明该模块自身在运行,否则是被引入。

  if __name__ == '__main__':
     print('程序自身在运行')
  else:
     print('我来自另一模块')

五:包:

采用”点模块名称”。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B。目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包。

六:类和方法:

6.1 对象方法:def开始,函数的第一个参数必须是self

类方法:装饰器 @classmethod,且第一个参数必须是cls

静态方法:装饰器 @staticmethod,第一个参数不在需要

父类.__init__ 方法:重载父类的方法。

  super(子类,self).__init__(参数1,参数2,....)

6.2访问控制:私有属性、方法,受保护的属性和方法;共享变量,私有变量__xxx__

七:异常处理:

7.1 try 表达式:

  except1:表达式1

except2:表达式2

    except:没有列出的错误情况

    else:无错误时执行

  finally:无论有无异常都会执行

7.2 raise:抛出异常但不处理:

8文件操作:

fileobj.open/close():关闭前写的内容都在缓冲区,关闭时才将缓冲区内容送到文件

fileobj.flush():手动将缓冲区内容送到文件并刷新缓冲区

fileobj.read()/readline()/readlines():读取指定字节,一行,多行

fileobj.write([str])/writelines([str]):写入字符串和一系列字符串

fileobj.seek(offset[, whence]):从开始(whence=0)向后、当前(whence=1)向后、结束(whence=2)向前偏移offset个字符

fileObject.tell(offset[, whence]):tell() 方法返回文件的当前位置,即文件指针当前位置

fileObject.isatty():isatty() 方法检测文件是否连接到一个终端设备

fileObject.fileno():fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作

next(iterator[,default]):文件结束

9序列化和反序列化:pickle模块,

  pickle.dump(obj, file, protocol=None, fix_imports=True):序列化后写入文件Wb模式

  pickle.load(file, fix_imports=True, encoding='ASCII', errors='strict'):从文件中读出并反序列化

   

最新文章

  1. minSdkVersion maxSdkVersion targetSdkVersion target 的区别
  2. css 笔记
  3. 【 D3.js 入门系列 --- 4 】 如何使用scale(比例)
  4. OS: 剪裁UIImage部分不规则区域
  5. ORACLE:profile的管理
  6. JavaScript高级程序设计(第三版)学习笔记6、7章
  7. C++类继承内存布局(二)
  8. (转载)细说PHP中strlen和mb_strlen的区别
  9. Qt编程之Qt样例表(QSS)
  10. Android截图
  11. Java之IO流学习总结【下】
  12. HDU 5608 function [杜教筛]
  13. win10安装git
  14. makefile 中autoload
  15. pyenv安装
  16. spring揭密学习笔记(1) --spring的由来
  17. SSH用户枚举漏洞(CVE-2018-15473)原理学习
  18. javascript版format函数,方便实现复杂字串连接
  19. JVM:如何分析线程堆栈
  20. position与float属性的使用

热门文章

  1. Pig Latin程序设计1
  2. Linux之tcpdump使用详解
  3. [译]我们应该在HTML文档中何处放script标签
  4. url-pattern 的设置与匹配
  5. redis配置文件常用配置介绍
  6. EXTJs前后台交互 常用哦3种方式
  7. 计算机上配置 IP地址,子网掩码,默认网关
  8. 【BZOJ 3326】[Scoi2013]数数
  9. String s String s=null和String s="a"区别
  10. P4768 [NOI2018]归程