1、 Python没有 ++, --操作。

2、 Join比+快;tuple比list快

3、 Dict的key是区分大小写的

4、 参数顺序:无默认值参数,有默认值参数,tuple,dict

5、 通过对ditc的key的排序实现dict的排序

6、   不论是可以变的还是不可变的,在函数内赋值给参数是不会影响到调用者

7、   import Phone.Mobile.Analog

Phone.Mobile.Analog.dial(“021-61750808”)

8、   from Phone import Mobile

Mobile.Analog.dial((“021-61750808”)

9、   如果需要预导入一些模块,就需要在__init__.py中编码实现

10、 如想在局部作用域中改变全局作用域的对象,必须使用global关键字

1、 Python函数没有声明和定义的区分

2、 id(obj)函数可用于检索对象的身份,也就是内存中的对象的地址

3、 当字典的value是一个复杂结构体时:

t={}

t.setdefault("aa",[]).append(1)

{'aa': [1]}

4、 seq*expr:序列重复expr次

5、 以单下划线开头(_foo)的代表不能用“from xxx import *”而导入;

以双下划线开头的(__foo)代表类的私有成员;

以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识

1、 将一个序列逆序:t[::-1]

2、 t=[1,2,3]

for id,val in enumerate(t):

print id,val

3、 print "my name is %s,my age is %d"%("aa",18)

4、 把字符串转换为Unicode编码的字符串:

SS=u"大连理工"

print isinstance(SS,unicode)

5、 模拟堆栈:

lst=[]

lst.append()

lst.pop()

模拟队列时:lst.pop(0)

6、 from __future__ import division

整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差

7、 /除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

还有一种除法是//,称为地板除,两个整数的除法仍然是整数:

取余数%

8、 如果'本身也是一个字符,那就可以用""括起来

9、 如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如

'I\'m \"OK\"!'

10、 Python还允许用r''表示''内部的字符串默认不转义

11、 空值是Python里一个特殊的值,用None表示

12、 变量本身类型不固定的语言称之为动态语言(python是动态语言),与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错

13、 Python的整数没有大小限制;Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

14、 Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码

15、 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码

16、 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符>>> ord('中')

20013

>>> chr(66)

'B'

17、 当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

18、 #!/usr/bin/env python3

19、 # -*- coding: utf-8 -*-

20、 申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码(用nodepad可以查看编码格式)

21、

>>> 'growth rate: %d %%' % 7

'growth rate: 7 %'

22、 tuple和list非常类似,但是tuple一旦初始化就不能修改

23、 不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple

24、 input()返回的数据类型是str

从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列>>> list(range(5))

[0, 1, 2, 3, 4]

25、 list越大,查找越慢。字典的查找速度不会随着字典大小的增加而变慢。

26、 dict内部存放的顺序和key放入的顺序是没有关系的。

和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;

需要占用大量的内存,内存浪费多。

而list相反:

查找和插入的时间随着元素的增加而增加;

占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法

27、 因为dict根据key来计算value的存储位置,所以key不能变,在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。(通过key计算位置的算法称为哈希算法)

28、 无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”,所以set中不可放入可变对象

29、 set中,没有重复的key。

30、 set和dict相似,list和tuple相似

31、 函数可以同时返回多个值,但其实就是一个tuple。

32、 当不按顺序提供部分默认参数时,需要把参数名写上。比如调用enroll('Adam', 'M', city='Tianjin'),

33、 设置默认参数时:必选参数在前,默认参数在后

34、 默认参数要牢记一点:默认参数必须指向不变对象!下面是个反例

35、 def add_end(L=[]):

36、 L.append('END')

37、 return L

38、 >>> add_end()

39、 ['END']

40、 >>> add_end()

41、 ['END', 'END']

42、 应该修改为如下:

43、 def add_end(L=None):

44、 if L is None:

45、 L = []

46、 L.append('END')

47、 return L

48、 常用不变对象:数值,字符串,NONE,tuple;可变对象:list、dict

49、 python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。

50、 定义参数个数可变的函数:在参数前面加了一个*号,在函数内部,参数numbers接收到的是一个tuple

51、 def calc(*numbers):

52、 sum = 0

53、 for n in numbers:

54、 sum = sum + n * n

55、 return sum

python知识点杂记的更多相关文章

  1. python知识点杂记2

    1. 如果已经有一个list或者tuple,要调用一个可变参数怎么办?2. >>> nums = [1, 2, 3]3. >>> calc(*nums)4. 14* ...

  2. python知识点, float不能用 != 判断

    python知识点链接:https://github.com/taizilongxu/interview_python 搜索:python最佳事件 书单:http://lucida.me/blog/d ...

  3. python 知识点补充

    python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...

  4. Python知识点汇总

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  6. ViewModel中C# Property自动添加OnPropertyChanged处理的小工具, 以及相应Python知识点

    在做WPFMVVM中经常会遇到一些Model.ViewModel的属性添加添加私有字段和更改通知方法来支持Binding. 比如把: public class Test {      public s ...

  7. Python知识点复习

    一.列表1.创建一个文件birthday.py,假设你要祝某人生日快乐!首先将年龄存储在变量age中,将姓名存储在变量name中,让程序输出类似“阿明,23岁生日快乐!” 例如:假设你要祝某人生日快乐 ...

  8. python知识点总结以及15道题的解析

    先看知识点总结 一.序列操作符x in s 如果x是列表s的元素,返回True,否则Falses + t 连接两个序列s和ts*n或者n*s 将序列s复制n次s[i] 返回s中第i元素s[i:j]或s ...

  9. python初学杂记

    python常用命令: 1.python 或者 python3  打开交互式python解释器 2.python hello.py   通过命令提示符运行python脚本 交互式python解释器常用 ...

随机推荐

  1. class path and classloader

    https://www.artima.com/insidejvm/ed2/linkmod5.html https://www.artima.com/insidejvm/ed2/securityP.ht ...

  2. JVM——Java HotSpot VM Options

    JVM常用参数 参数名称 含义 默认值  描述 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆 ...

  3. ref和引用类型传参的区别

    引用类型对象本身不改变,只改变对象的属性时,我们在操作同一个对象:(类似c++指针指向的地址) 如果连对象本身都可能会改变,又要保证在操作同一个对象,就用ref传引用类型的对象吧!(类似c++指向一个 ...

  4. Java如何根据主机名(域名)获取IP地址?

    在Java编程中,如何根据主机名(域名)获取IP地址? 以下示例显示了如何通过net.InetAddress类的InetAddress.getByName()方法将主机名更改为指定的IP地址. pac ...

  5. Python套接字编程(1)——socket模块与套接字编程

    在Python网络编程系列,我们主要学习以下内容: 1. socket模块与基本套接字编程 2. socket模块的其他网络编程功能 3. SocketServer模块与简单并发服务器 4. 异步编程 ...

  6. Spark学习笔记——键值对操作

    键值对 RDD是 Spark 中许多操作所需要的常见数据类型 键值对 RDD 通常用来进行聚合计算.我们一般要先通过一些初始 ETL(抽取.转化.装载)操作来将数据转化为键值对形式. Spark 为包 ...

  7. python mysql redis mongodb selneium requests二次封装为什么大都是使用类的原因,一点见解

    1.python mysql  redis mongodb selneium requests举得这5个库里面的主要被用户使用的东西全都是面向对象的,包括requests.get函数是里面每次都是实例 ...

  8. [IR] Arithmetic Coding

    Statistical methods的除了huffman外的另一种常见压缩方式. Huffman coding的非连续数值特性成为了无法达到香农极限的先天无法弥补的缺陷,但Arithmetic co ...

  9. [Artoolkit] Framework Analysis of nftSimple

    What is nftSimple? Loads NFT dataset names from a configuration file. The example uses the “Pinball. ...

  10. [JS] ECMAScript 6 - Object : compare with c#

    Ref: 对象的扩展 Outline: 属性的简洁表示法 属性名表达式 方法的 name 属性 Object.is() Object.assign() 属性的可枚举性和遍历 Object.getOwn ...