Python常用知识
想要学Python很久了。一是流行,再是强大。现在写一篇博客,整理一下常用的知识点,以备复习。
1.数据类型
数据
Python可以处理任意大小的整数
可以用0xff00的方法表示十六进制整数
description: 整理Python开发中常用的语法技巧、内置函数、字符串处理与文件操作等知识点。
浮点数处理的精度也比较高,但是太高精度需要用科学记数法表示
字符串用单引号或双引号括起来
转义字符大体同C
大量需要转义字符的地方,可以简写成:r'\\\\'
Python允许字符串内换行,使用…来表示:
print(str1 |
布尔值:true false
可使用and or not 运算
Python中的强制类型转换方法如下:
>>>s=input('birth:') |
注意,input()返回的数据类型是str。
运算符
/ 除法,结果一定是浮点型// 整除% 求余
2.字符串和字符编码
字符串和整数的转换
ord()函数,获取字符的整数表示chr()函数,把编码转换成对应的字符
可以使用转义字符表示,例如:\u4e2d会显示代表的汉字”中”
字符串和字节
str是字符串类型bytes是字节类型,需要用带b前缀的单引号或双引号表示:x=b'ABC''ABC'和b'ABC'占用的内存不同,后者每个字符都只占用一个字节encode()方法可以把str转换成指定的bytes,例如:
>>>'ABC'.encode('ascii') |
把字节转换成字符串需要使用decode()方法:
>>>'ABC'.decode('ascii') |
len()函数,用于计算str中的字符数和bytes中的字节数(英文字符只占一个字节,中文字符经常占3个字节)
要保证编译的python文件能够正确显示中文,我们除了在编写环境中指定编码类型为utf-8之外,通常还要在开头加上两行:
#!/usr/bin/env python3 |
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
replace()方法,用于取代字符串中某个字符,但是不影响字符串本身:
>>>a='abc' |
格式化
同C的格式化类似
'Hello, %s' % 'world' |
%开头的叫做占位字符,常用的占位字符有:
% 整数
%f 浮点数
%s 字符串
%x 十六进制整数
格式化整数和浮点数可以指定是否补0或者确定小数的位数
'%2d-%02d' % (3, 1) |
3.list和tuple
list
list是Python内置的一种数据类型,列表。它是一种有序的集合,可以随时添加和删除其中的元素,声明方式如下:
>>>name=['tom','cat','car'] |
可以使用len()函数获取list元素的个数
用索引来访问每个元素,索引从0开始:
>>>name[0] |
可以使用-1做索引,访问最后一个元素,依次类推,可以访问倒数第二,第三个元素:
>>>name[-1] |
可以使用append()方法,向list中追加元素到末尾:
>>>name.append('apple') |
可以使用insert()方法,将元素插入到指定位置,比如下标为1的位置:
>>>name.insert(1,'banana') |
可以使用pop()方法,删除list末尾的元素:
>>>name.pop() |
可以使用pop(i)方法,删除指定位置的元素:
>>>name.pop(1) |
可以使用直接赋值的方法将某元素替换成别的元素:
>>>name.[2]='apache' |
list中可以存放不同类型的元素,也可以存放list(可以看做二维数组)
如果list中没有元素,就是一个空list,长度为0。
tuple
tuple叫做元组,一旦初始化就不能修改,可以使用索引来访问每个元素,但是不能赋值成另外的元素。因为它无法被修改,所以更加安全。
tuple的定义方法:
>>>t=(1,2) |
不能使用t=(1)的方法来定义只有一个元素的tuple,这会让python认为它是个括号,而将t认为是一个整形变量。
4.dict和set
dict
dict即C++中的map,全称是dictionary,具有极快的查找速度。它的元素有两种,一种叫做key,另一种叫做value。前者是查询的参数,后者则是它所对应的值。dict的声明方法如下:
>>>d={'tom':90,'cat':80,'apache':70} |
当然,我们在“放入”的时候也很方便:
>>>d['apache']=60 |
每个key只对应一个值,后面赋的值会将前面的覆盖。
我们可以使用in来判断一个key是否存在:
>>>'toom' in d |
可以使用get方法来获取指定的value。如果不存在,可以返回指定的值:
>>>d.get('tom') |
dict的特点
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
set
set是一组key的集合,但不存储value。因为key不能重复,所以在set中没有重复的元素。要创建一个set需要提供一个list作为输入集合:
>>>s=set([1,2,3]) |
通过add(key)方法可以添加到set中:
>>>s.add(4) |
通过remove(key)方法可以删除元素:
>>>s.remove(4) |
set可以看成无序无重复元素的集合,可以进行交集,并集等操作:
>>>s1=set([1,2,3]) |
5.判断与循环
判断
Python也有if和else语句,但是和C比起来又显得非常“任性”。它没有小括号,也没有大括号,具体例子如下:
age = 20 |
根据Python的缩进规则,如果满足if后的条件,则会执行缩进的两个print语句,else也类似:
age = 3 |
注意不要少写了:。
Python中还有elif语句,也就是else if的缩写,所以if语句的完整版就是:
if <条件判断1>: |
循环
for...in循环,可以依次将list或tuple中的每个元素迭代出来:
names=['tom','cat','apache'] |
执行这段代码,就会依次打印出names中的每个元素:
tom |
for x in ...循环,可以将元素依次代入变量x,然后执行缩进的语句,例如:
sum=0; |
这段代码显示的结果是0-10的累加和
Python提供了range()函数来生成一个整数序列,比如range(5)生成的是从0开始的5个整数:
>>>list(rangr(5)) |
则0累加到100的程序可以写成:
sum=0 |
Python中也有while循环,用法和C类似:
sum=0 |



