Python心得基础篇【1】入门篇
-
python2和python3有什么区别
1.print
py2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印
py3:print函数,函数就以为这必须要加上括号才能调用,如果接元组对象,可以接收多个位置参数,并可以打印
如果希望在 Python2 中 把 print 当函数使用,那么可以导入 future 模块 中的 print_function
1 # py2 2 >>> print("hello", "world") 3 ('hello', 'world') 4 # py3 5 >>> print("hello", "world") 6 hello world
2.输入语句
py2:raw_input
py3:input()
3.在使用super()的不同
py2:必须显示的在参数中写上基类
py:直接无参数调用即可
4.1/2的结果
py2:返回0
py3:返回0.5,没有了int和long的区别
5.编码
py2:默认编码ascii
py3:默认编码utf-8
而且为了在py2中使用中文,在头部引入coding声明,不推荐使用
6.字符串
py2:unicode类型表示字符串序列,str类型表示字节序列
py3::str类型表示字符串序列,byte类型表示字节序列
7.True和False
py2:True 和 False 在 Python2 中是两个全局变量,可以为其赋值或者进行别的操作,初始数值分别为1和0,虽然修改是违背了python设计的原则,但是确实可以更改
py3:修正了这个变量,让True或False不可变
8.迭代器
py2:当中许多返回列表的方法,如range,字典对象的 dict.keys()、dict.values() 方法, map、filter、zip;并且迭代器必须实现next方法
py3:将返回列表的方法改为了返回迭代器对象,内置了__next__,不用特意去实现next
9.nonlocal
py2:没有办法在嵌套函数中将变量声明为一个非局部变量,只能在函数中声明全局变量
py3:nonlocal方法实现了,示例如下:
def func(): c = 1 def foo(): c = 12 foo() print(c) func() #1
def func(): c = 1 def foo(): nonlocal c c = 12 foo() print(c) func() # 12
-
在linux中配置python环境
在大多数linux系统中,需要执行一个命令安装Geany(文本编辑器)
$sudo apt-get install geany
-
变量和简单数据类型
变量名的使用:只能包含字母、数字和下划线,且变量名可以以下划线或字母打头,但不可以以数字打头;
变量名不能包含空格;
不要使用python已有的函数名和关键字。
字符串就是一系列字符,在python中用引号引起的都是字符串。
python用(+)号来合并字符串(拼接)。
使用函数str()来避免类型错误。
-
列表
索引、切片,索引从0开始,在不指定任何索引的情况下提取切片,如friend_food = my_food[:],就创建了这个列表的副本
bike = ['treck','redline'] print(bike[0])
上述代码反映了访问列表元素的方法,python只返回该元素,而不会返回包括方括号和引号。
if 循环主要用于判断
for循环用于循环每一个元素
while循环用于不断地循环,直到指定的条件不满足
enumrate用法
list1 = ["这", "是", "一个", "测试"] for index, item in enumerate(list1): print index, item >>> 0 这 1 是 2 一个 3 测试
建议行长不超过80字符,注释行长不超过72字符
if语句
每条if语句的核心都是一条值为True或False的表达式,这种表达式被称为条件测试。
大小写不同,if语句会认为是不同的。
可省略else代码块
if在将列表名用在条件表达式中时,python将在列表至少包含一个元素时返回True。
-
set集合
set是一个无序且不重复的元素集合
-
collection
1、计数器(counter)
Counter是对字典类型的补充,用于追踪值的出现次数。
ps:具备字典的所有功能 + 自己的功能
2、有序字典(orderedDict )
orderdDict是对字典类型的补充,他记住了字典元素添加的顺序
3、默认字典(defaultdict)
4、可命名元组(namedtuple)
根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型
5、双向队列(deque)
一个线程安全的双向队列
-
字典
字典是一系列键值对,每个键都与一个值关联,你可以使用键来访问与之关联的值,与键关联的可以是数字、字符串、列表乃至字典,可将任何python对象用作字典中的值。
添加键值对,修改键的值,删除键值对del(永久删除)
遍历所有键值对
user = {} for key,value in user.items(): print('\nkey:'+key) print('\nvalue:'+value)
注意,即使遍历字典时,键值的返回顺序也和存储顺序不同
嵌套
-
用户输入和while循环
使用标志
python中任何循环都可以使用break循环
用while循环来处理列表和字典
while+列表:代表循环不断进行,只要列表中有元素
删除列表中特定元素:
1 pet = [cat,dog,cat] 2 while 'cat' in pet: 3 pet.remove('cat') 4 print(pet)