字符串分割为字段
import re 正则的模块
re.split()
指定文本模式去检查字符串开头与结尾
url.startswith(),表示或 url[0:7]==‘’or ....
通配符去匹配字符串 fnmatch模块
fnmatchcase区分大小写
匹配特定字符串
正则re.match():print() else:print()
搜索替换
re.sub
re.compile
re.subn()当有多个类似时
字符串分割为字段
import re 正则的模块
re.split()
指定文本模式去检查字符串开头与结尾
url.startswith(),表示或 url[0:7]==‘’or ....
通配符去匹配字符串 fnmatch模块
fnmatchcase区分大小写
匹配特定字符串
正则re.match():print() else:print()
搜索替换
re.sub
re.compile
re.subn()当有多个类似时
字符串忽略大小写搜索替换
re.findall
最短匹配 用()最小化
多行匹配
删除不需要的字符串的字符 strip sub
字符串对齐 just format
合并字符串 format join
字符串插入变量 {}format
指定列宽格式化字符串 textwrap fill
字符串格式化表达式
了解即可 会被format取代
用%来格式
s r(以repr输出) c d i(整数) o x X f F g G
fiedtype属性
formatspec =[[fill]align][sign][#][0][width][,][.precision][type]
fill是表示可以填写任何字符。
align是对齐方式,< / =(format里面的为数字) 是左对齐, >是右对齐,^是居中对齐。
sign是符号, +表示正号, -表示负号。
width是数字宽度,表示总共输出多少位数字。
precision是小数保留位数。
type是输出数字值是的表示方式
#是让其显示0b 0o 0x时使用
如{:-^40}.format('start') :显示开始 以formatspec开始 填充- 居中 40个- start居中
,表示每三位加一个,
字符串(二)
字符串方法 格式化表达式
属性读取 Object.attribute 读取对象的属性值
大小写
capitalize() 首字母大写
title() 每个单词第一个字母大写
upper()大写
lower()小写
swapcase()大小写转换
排版
center() 使居中 左右填充自定义 默认空格
ljust() rjust() 左右对齐
expandtabs()tab空格的个数
zfill() 扩展到指定宽度 填充自定义
strip()删除左右的字符 自定义 可以用正则 lscrip rscrip
查找
startswith() 是否以什么开始 可以指定第几位到第几位
endswith() 结尾
count() 数字符串里面有几个指定的字符
find() 找寻位置 找到返回位置 否则 -1
index() 找寻位置 未找到返回错误
replace() 指定替换 换第几个
格式判断
isalpha()
isdigit()
isalnum()等等
python3特有的
isnumeric()是否数字
isdecimal()是否数字
isidentidier() 是否成为标识符
isprintable() 是否全部可被打印
字符分割
split() 分割后放在列表里面 默认空格 指定分割符 分割次数 r l 左右开始分割
splitlines()以\n \r 为分割
partition() 把分割符单独拿出来变为一个元素 适用于分割网址 支持r l 通过左右 以及分割符 可以在特定用到
其它
a.join() 列表用到的多 把字符串分割一个字符以a来分割 可以把字符串放在字符串中或列表里 组合
translate(map) map是一个对应的字典(相当于php的数组)
maketrans(intab, outtab) 创建字符映射的转换表 intab -- 字符串中要替代的字符组成的字符串。 outtab -- 相应的映射字符的字符串。
format() 通过位置 关键字 对象属性 下标进行映射
下标映射:
In [7]: p=['kzc',18]
In [8]: '{0[0]},{0[1]}'.format(p)
Out[8]: 'kzc,18'
字符串(一)
字符串简介 字符串常量 字符串操作
不可变序
单引号 双引号 三引号 转义\ Raw字符串用\
#-*- coding:utf8 -*-才可以中文
\ \\ \' \" \a 响铃 \b光标向前移动一位 \f 下一页 \n 换行 \r 返回开始 \t 水平制表 \v 垂直制表
\u \U \x \0(空字符 a\0b 的长度为3) 分别表示 16 (Unicode) 32(Unicode) 32 位进制值 NULL
使用文件目录 \\ 或者在前面加r或R
python3 len("中文") 2 python2 len("中文") 6 len(u"中文") 2
字符型拼接printf('-'*80)
a="aaass" 字符串也是序列
for c in a 循环
print(c,end='-')
a-a-a-s-s
from __future__ import print_funtion python2需要导入该模块才可以 end=''
判断字符(串)在字符串 'a' not in a
对字符串分辨
a[0:2] 显示第0个到第2个字符
每一个字符前面都有2个位置 正像反向的 不写是头尾
每几个显示一下 a[数字:数字:2] 每2个显示一个字符
字符串代码转换 ord('a') 为数字(可以用于转换ascci码) chr(1) 到字符
python2 不是Unicode代码 3是 Unicode代码可以正常中文 2加u来解决
a.repalce('ss','-') aaa-- 然而a的值不会变 需要重新赋值才可以
动态类型简介
变量 对象 引用 共享引用
变量:没用类型
a=3;a="string";单引号也可以
变量储存的是对象的指针
对象是存放数据的 有类型
最后变量的值 是 最后 一次的对象
赋值时 自主创建对象 然后把对象的指针放在变量里面
变量被赋值 上一个该变量储存的对象会被回收
两个变量可以共享一个对象 共享引用
变量赋值相当于指针赋值 指向的地址赋值 改变变量(指针)所指向的位置 而且赋值的左面会自动创建一个对象
对指向的内容的指向 储存的值地址 指针
list=[1,2,3]list创建一个引用三个对象的对象 list2=list list[0]相当于数组 相当于在地址上改内容 则list的值也会变 因为改变的是对象的元素 存在共享
不共享
list1=list[:] 对list1从重新创建一个对象 与list值一样 这样改变list元素 list1的元素就不会改变了
== 只要是值一样那么就是true a=1 b=1 a==b true 对象共用 ab指向同一个对象 c=1.0 对象与1不同 但1==3 true
is 相同对象才可以为true 1 is 2 true 1 is 3 false 对象不同
同一个字符串为一个对象 共用
相同值的浮点数 不是共享一个对象 a = b 肯定共享同一个对象
import sys 引进函数
sys.getrefcount(1) 参看该函数里面引用多少个1
python的类型与运算-数字(一)
python2
数字 (2**63 2的63次方)超过64位 在后面加L(长整数)
python3
不会有L 不会有一般整数与长整数
0b 0B bin(i)
0o 0O oct(i)
0x 0X hex(i)
int(str,base) str数字 base进制 把几进制化为十进制
浮点数用64位存储 精确度17左右
repr()
复数
complex 或 3+5j/J
分数 Franctin
无穷大 无穷小 float(‘inf/-inf’)
非数字 float(‘nan’)
运算符
算数 //输出整型的数字 **幂函数
python2(取整)与3(只要是除 就会是浮点数)的 3/6 3/6.0
比较 赋值
位运算 & | ^ ~ << >>
逻辑 and or not or在使用数字时 始终显示第一个 and第二个
成员 in not in
身份 is is not
数字(二)
类型升级
导入分数模块
from fractions import Franction
这样就可以使用Fraction()函数了 (相当于导入了头文件)
type看类型
分数 is 小数 为FALSE 储存关系有关
基本数学函数
pow ** i
abs 整数
fabs 浮点数 import math from math import *
round 四舍五入 3里面靠近偶数取整 round(2.5、3.5) 且为整数 2为浮点数
math.ceil floor 取整 math 大的最小的 小的最大的
int 等 格式转换
random 随机 random random.random() random.choice([2,4,6,8]) 2 // random.sample([2,4,6,8],2(个)) 【2,4】 // random.shuffle(a) 随机打乱a里面数的顺序 // random.getrandbits(200) 随机生成200位随机数(二进制)
cmp 比较 只在2里面 3没有
log 对数 不写底数默认为e math
log10
max min
modf 把浮点数分为小数 整数部分 math 但是有时不准 math.modf(2.7) (0.700000000000002,2.0)
sqrt
格式化输入出
特殊的输出方式时 用format format(2,'x') 相当于 hex(2)
Decimal 精确
from decimal import Decimal
a= decimal('6.3')
由于 a=6.3 b=2.1 a+b=8.40000000001 所以引入了decimal
1 为什么使用python
简洁 高可读 效率高 支持多种平台 可移植性高 自行开发库 使用第三方库
2 下载python
http://www.python.org
各种版本 平台
documentation 查询文件
3 安装python
解压 ./configure make make install
环境变量 交互模式 编写代码 python解释器
执行程序 把源代码编译成文件 PVM以虚拟机方式来运行 可以与c java等结合
交互模式
>>>
可执行脚本
#!python的路径python 保存为.py (chmod +x)
基本语法
标识符:字母 数字 下划线
行和紧缩:不使用{} 按缩进来对应匹配层次
多行语句:用\隔开
引号:单 与 双 一样 三引号使用段落 在里面输入段落 避免\n
注释:#