python学习笔记-Day2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记-Day2相关的知识,希望对你有一定的参考价值。
1. 变量赋值
>>> a = 1 >>> b = a >>> a = 2 >>> b 1
那可以看出来,b赋值为a时,并没有因为a的改变而跟着改变,还是原来的值。这里的原理就是:b在赋值a时,是在做一个将b指向a变量值所在的内存块操作,所以当a变量更改值时,a变量会在内存中新开辟一个地址块存储新值,并不影响b变量的内存指向
2. 简洁的赋值
链式赋值
a=b=1
多个变量同时赋值
user,passwd=‘jack‘, ‘xxxx‘
3. python 2.x的input函数
在python 2.x中input函数接受的值是要求有类型的,例如说,字符串类型就需要加引号,不加引号的则被视为变量
4. python中常量设置
常量概念:不能被改变的;
python中没有常量的概念,如果你需要设置一个不被改变的,可以通过全部大写的变量警示看代码的,这个变量是不可改变的。
5. 导入模块方法
import os #导入os模块 from os import os.path #仅导入os模块中的os.path方法
6. pyc是什么,什么时候回产生pyc文件
6.1 pyc是解释性语言的字节码文件,可以供解释器读懂.
6.2 这里说明下,pyc并不是所有时候都会出现,只有当这个py文件作为模块(也就是被其它的py程序import导入)导入情况下会出现。
6.3 解释器最终执行的是Pyc文件,而不是py文件。
6.4 import某个py文件导入后,生成了pyc文件,这时更改了这个py文件,pyc文件会根据修改时间不同去从新在py文件生成Pyc
7. python 3.x中已取消了长整型类型
8.
应避免以下字符串拼接,这样会将name变量单独开辟内存空间,消耗不必要内存
name = ‘jack‘ print(‘name is ‘+name)
将字符串拼接写法改为格式化字符串写法:
name = ‘jack‘ print(‘name is %s‘ % name)
9. 列表中分片
>>> name = [‘jack‘, ‘eason‘, ‘tony‘, ‘john‘, ‘python‘] >>> name[0:2] [‘jack‘, ‘eason‘] #列表分片包含头不包含尾 >>> name[2:] [‘tony‘, ‘john‘, ‘python‘] #如果要输出到最后一个元素,分片结尾索引不写
10. 列表中的怎删改查
name = [‘jack‘, ‘eason‘, ‘tony‘, ‘john‘, ‘python‘] # 增 name.insert(2, ‘xxx‘) #在列表索引2位置上,插入元素值为‘xxx’ name.append(‘xxx‘) # 在列表最后追加一个元素值为‘xxx‘ # 删 name.remove(‘xxx‘) # 删除元素‘xxx‘ name.pop(2) # 删除索引位置2元素 del name[2:4] # 删除2到4的元素(分片删除发,同样是包含头不包含尾) # 改 name[1] = ‘xxx‘ # 将索引位置1的值改为‘xxx’ # 查 name.index(‘xxx‘) # 查找匹配到‘xxx‘的第一个元素的索引位置
11. 深复制与浅复制
# 浅复制 >>> num = [1,2,3,[1,3,5]] >>> num2 = num.copy() # 将num列表复制给num2 >>> num[0] = 0 >>> num [0, 2, 3, [1, 3, 5]] >>> num2 [1, 2, 3, [1, 3, 5]] # num发生该变,num2不改变 >>> num [0, 2, 3, [1, 6, 5]] >>> num2 [1, 2, 3, [1, 6, 5]] # num的嵌套列表该变,num2才会该变
浅复制中,嵌套的列表在浅复制中并不是直接复制过来,而是复制了一条地址的指向,所以当num的嵌套列表发生该变,num2则会跟着该变,如果需要嵌套列表完全深层复制过来,可以使用深复制。
# 深复制 >>> num = [1,2,3,[1,3,5]] >>> import copy >>> num2 = copy.deepcopy(num) >>> num [3][1] = 6 >>> num [1, 2, 3, [1, 6, 5]] >>> num2 [1, 2, 3, [1, 3, 5]]
延伸:浅复制和链式列表赋值有区别的
>>> num = num2 = [1,2,3,[1,3,5]] >>> num2[0] = 6 >>> num [6, 2, 3, [1, 3, 5]] # 可以看出这样链式赋值,并没有起到复制作用,反而是一个像linux中文件的‘硬链接’作用,当任何一个更改都被更改
12. 字符串的一些方法
# 去除首尾空格 name = ‘ jack ‘ name.strip() # 字符串分割成序列 >>> ‘1+2+3+4+5‘.split(‘+‘) [‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘] # 序列组成字符串 >>> dir = [‘‘, ‘usr‘, ‘bin‘, ‘env‘] >>> ‘/‘.join(dir) ‘/usr/bin/env‘ # 字符串格式化方法 >>> msg = ‘hello, {name}‘ >>> print(msg.format(name=‘alex‘)) hello, alex >>> msg = ‘hello, {0}, {1}‘ >>> print(msg.format(‘alex‘, ‘jack‘)) hello, alex, jack # 格式化输出字符串 >>> name = ‘eason‘ >>> print(name.center(40,‘-‘)) # 打印name,共占用40个字符位置,空白处使用‘-’填充 -----------------eason------------------
13. 字典的一些方法
# 获取某个Key对应值 dic.get(key) #区别于dic[key]这样取值,如果key不存在,get方法返回None,而dic[key]则会报错 # 获取所有key值 dic.keys() # 获取所有value值 dic.values() # 删除字典某一项 del dic[xxx][xxx] dic.pop(key) # 设置key的默认值 dic.setdefault(key, values) # 取dic的key值,如果不存在,则默认创建一个key,默认值是values
本文出自 “Cool King” 博客,请务必保留此出处http://coolk.blog.51cto.com/1752609/1775159
以上是关于python学习笔记-Day2的主要内容,如果未能解决你的问题,请参考以下文章