字符串不可以在原处修改,列表可以修改
list.append( ) 添加
list.sort 排列
list.extend( [ 1,2,3 ] ) 与相加类似
list.pop( ) 取最后一个值,会去掉此值
1、变量:在python中变量没有类型,当第一次赋值给一个变量的时候,变量就会自动创建。
变量:一个系统表的元素,拥有指向对象的连接的空间。(存储的是对象的一个指针。)
对象:分配的一块内存,有足够的空间去表示他们所代表的值。
引用:自动形成的从变量到对象的指针。
对象的回收:因为对象是独立于变量的,当不再使用的时候得回收。
a=3
a=’Three’ #回收整数3
a=[1,2,34] #回收字符串’Three’
第二次引用(赋值)后,当没有别得变量引用对象3的话,3就会被回收,以此类推。
使用函数来查看对象被引用的次数:
import sys
Sys.getrefcount(1) #结果比较大是因为在很多内部函数里会使用值为1的对象,而且,当使用这个函数的时候,这个函数就调用其本身,所以最终结果不可能为0.
判断某个字符是否在一个字符串:可以用in或者not in来判断
ord(x):把一个字符转换成数字
chr(x):把数字转换成单个字
Python的类型与运算-其他
• 对象分类
• set - 集合
• bytearray类型
• 对象灵活性
• 引用与复制
• 相等性比较
• Python里的真假
• 无限循环
集合的元素可以是不可变对象:数字、字符串、元祖、frozenset。
集合里的元素是不重复的。
空集合:
>>> _set = set()
>>> type(_set)
<class 'set'>
Python 3.x 里,空的时候是set(),有元素跟字典差不多,但不是键:值方式。
>>> _set
set()
>>> _set = {'a'}
>>> _set
{'a'}
list.insert(2,‘string’) 指定位置插入
list.pop(2)删除指定的值,会显示出来
del list[ 2 ] 删除特定的值,不回显
sorted( list ) list本身不变,新生成一个list
list.sort 会改变原来的list
slice( 0,2) 切片
Python的函数-参数
特定的参数匹配模型 - 必须使用关键字传递
函数里的参数:
常规 - 有/无默认值
*args - 存放在列表
**args - 存放在字典。
在Python2.x里,参数顺序必须是 0个或多个常规参数 + 0个或1个*args +0个或
1个**args。
在Python3.0开始,在*args与**args中间可以加入一个“必须使用关键字传递的
参数”。
使用方法为是 0个或多个常规参数 + *或*args + “必须使用关键字传递的参数”
+ 0个或1个**args。
在不使用“必须使用关键字传递的参数”时,顺序与Python2.x相同。
文件的三种写入模式:r+,w+,a+
文件的访问——b模式
原生对象的存取:用pickle模块(pickle.dump())
python优点:软件质量、开发效率、可移植性、标准库的支持,
语法简洁、高可读性、开发效率高、可移植性、支持自行开发或第三方模块、可调用c,c++库、可与java组建集成
缺点是跟其他语言相比速度不够快
python可以1.对操作系统服务的内置接口,使其称为编写
https://www.python.org
指定编码模式:encoding
当编码模式错误
任务2:Python的类型与 运算-数字(一)
一、整数
没有这种区别,它正常显示。在Python3.X里没有这种分别
注意:在老版本中,可以以0开头,新版本不支持。
注意:前三个函数输出的是文本形式。
二、浮点数
注意:Python3.X里的输出跟现实运算是一样的
三、复数
四、其他的数字
五、运算符详解
打印输出文件:with open('/tmp/print.out','w') as f:
print('Hello,world',file=f)
文件不存在时写入:if not os.path.sexists('somefile')进行判断
读写压缩文件:用gzip和bz2模块压缩存储,读的时候使用rt和read()
获取文件夹中的文件列表:os.listdir('/tmp/dirlist')
os.path
字符串合并 用+即可
字符串的重复输出 可以使用*
使用in 或者not in来判断是否属于同一个字符串
分片操作每隔n个字符显示
例:text="ThisIsTestText"
text[::2]的结果是:'TiITsTx'
字符串代码转换:当我们需要对字符串大小写等操作的时候,需要对字符串转换成相应的代码。这个时候我们就需要两个函数:ord和chr。ord是把一个字符串转换成数字,chr是把数字转换成单个字符
unichr可以转换回去(转换为汉字)
replace 替换字符串 返回的是一个字符串
如果想要改变原来的字符串的话,需要对原来的字符串重新赋值
进制转换:
bin( i ) : i 转为二进制 0B
oct( i ) : i 转为八进制 0O
hex( i ) : i 转为十六进制 0X
int(str,num):str:对应进制数;num表示进制
复数:3+5j 即现实中的 3+5i
** :次方
% : 取余
// : 整除 :只留整数部分
<< : 左移: 二倍
>>:右移:除二
set——集合:元素可以是不可变对象:数字、字符串、元祖、frozenset,元素是不重复的
对象灵活性:列表,字典,元祖里的元素可以包含任何对象,任意嵌套,列表和字典是可以任意变长的
无限循环:l=['l']
l.append(l)
ord函数:把字符转化为数字
chr函数:把数字转化为单个字符
abs()绝对值
math.fabs()结果浮点数
math.sqrt()平方根
结果是浮点数
round 四舍五入
偶数取整
ceil:取最小的大于该值的最大整数
cmp()
前面数值小-1、一样时为0、前面数值大为1
random.random()0-1之间的随机小数
random.choice([2,4,6,8,10])随机取1个数
random.sample((2,4,6,8,10),2)随机取2个数
a = [2,4,6,8,10]
random.shuffle(a)把a打乱
math.modf()把一个数的小数和整数部分分开
使用Decimal模块解决精度问题
a = Decimal('2.1')
b = Decimal('4.2')
格式化输出:format
a = 3:模型
创建一个int类型的对象 3 ;还创建一个变量 a;
a 引用 3 那个对象;a:存放的是引用对象的指针
自动回收机制
list[ x : y : z ] :
x : 起始元素
y : 终止元素
z : 间隔
共享引用 :
list2 = list1 list1 and list2 表示同一个对象
相等 :
list2 = list1[ : ] 将 list1 复制给 list2
\——转义符
\uffff unicode16位的16进制值
\xff 16进制值
\off 8进制值
\r 返回
\n 换行
\b 倒退
raw 不转译
len() 算长度
+合并
*重复
ord 转数字
chr 转字符
unichr 转Unicode