python知识点杂记
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知识点杂记的更多相关文章
- python知识点杂记2
1. 如果已经有一个list或者tuple,要调用一个可变参数怎么办?2. >>> nums = [1, 2, 3]3. >>> calc(*nums)4. 14* ...
- python知识点, float不能用 != 判断
python知识点链接:https://github.com/taizilongxu/interview_python 搜索:python最佳事件 书单:http://lucida.me/blog/d ...
- python 知识点补充
python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...
- Python知识点汇总
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- 零基础Python知识点回顾(一)
如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符 输入检查是否已经安装pip,一般安装了python都会有的. >pip ...
- ViewModel中C# Property自动添加OnPropertyChanged处理的小工具, 以及相应Python知识点
在做WPFMVVM中经常会遇到一些Model.ViewModel的属性添加添加私有字段和更改通知方法来支持Binding. 比如把: public class Test { public s ...
- Python知识点复习
一.列表1.创建一个文件birthday.py,假设你要祝某人生日快乐!首先将年龄存储在变量age中,将姓名存储在变量name中,让程序输出类似“阿明,23岁生日快乐!” 例如:假设你要祝某人生日快乐 ...
- 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 ...
- python初学杂记
python常用命令: 1.python 或者 python3 打开交互式python解释器 2.python hello.py 通过命令提示符运行python脚本 交互式python解释器常用 ...
随机推荐
- 浅谈.net中事务
.net中的事务 关键几点 概念:1:什么是事务 2:什么时候用事务 3:基本的语法 (1): 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常 ...
- 【iCore4 双核心板_ARM】例程十八:USBD_VCP实验——虚拟串口
实验步骤: 1.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 2.打开设备管理器,可以找到虚拟出来的端口,(特殊情况下如果没有虚拟出端口,我们可 ...
- Java知多少(104)网络编程之统一资源定位符URL
统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址.超文本链路由统一资源定位符URL维持.URL的格式是: <M ...
- Java查找出现的单词
如何找到一个单词的每个出现? 解决方法 下面的例子演示了如何使用Pattern.compile()方法和m.group()方法找到一个词出现次数. import java.util.regex.Mat ...
- Scala学习笔记(四):apply方法说明
当scala中类或者对象有一个主要用途的时候,apply方法就是一个很好地语法糖.请看下面一个简单的例子: class Foo(foo: String) {} object Foo { def app ...
- 完全卸载MySQL
1.先停止mysql服务,cmd模式下输入net stop mysql; 或者在图形服务面板停止mysql服务 2.进入控制面板卸载mysql; 3.windows+R运行“regedit”文件,打开 ...
- Android UI布局之RelativeLayout
RelativeLayout是一个相对布局类. 首先RelativeLayout是一个容器,它里边的元素,如Buttonbutton等的位置是依照相对位置来计算的,比如,有两个Buttonbutton ...
- 19迭代模式Iterator
一.什么是迭代模式 Iterator模式也叫迭代模式,是行为模式之 一,它把对容器中包含的内部对象的访问委让给 外部类,使用Iterator(遍历)按顺序进行遍历 访问的设计模式. 二.不使用迭代模式 ...
- ASP.NET MVC 4 (七) 模板帮助函数
和普通HTML帮助函数不同,模板帮助函数不需要指定所用的HTML类型,MVC会推断选择合适的HTML元素,这让我们有更多的灵活性. 使用模板帮助函数 我们使用<ASP.NET MVC 4 (六) ...
- java调用删除文件的方法删除文件,却删除不干净
场景: 程序中在做数据下载时,生成了一个临时文件夹.夹子里面有一些txt和其他格式文件. 数据下载完毕后,需要删除这个临时文件夹,但是一直删除不干净,总会有一下文件残留. 网搜到了这个问题的原因: 内 ...