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的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记_day2

python学习笔记 Day2

DAY2-Python学习笔记

Python学习Day2笔记

python学习笔记-Day2

python学习笔记-day2-列表list