目录
- 数字 与 字符串
- \n 换行
- 进制转换
- 数学函数
- 科学计数法 %e
- 常用函数
- 1. 返回字符串的首字母大写
- 2. center(width,'符号') 返回 str , 占据 width 宽度
- 左对齐 str.ljust()
- 右对齐 str.rlist()
- 3.string.count(str,start=0,end=len(string))
- 4.string.startswith(str , start ,end)
- 检查 string(start:end) 是否 以 str 开头
- 如检查姓什么
- 或者 使用
- 5. string.endswith(str,start,end) 检查某个区间内是否已str 结尾
- 6. string.find(str,start,end) 查找 string 的 start-end 范围内 str 在整体的索引位
- 找不到返回-1
- 假设一个长字符
- 6. string.rfind(str,start,end) 从右往左查找 string 的 start-end 范围内 str 在整体的索引位
- 8. string.index(str,start,end) 同 find 但是找不到会报错
- str7.index('b')
- 9.判断 string.isalnum 判断 string 是否有 纯数字字母(包含汉字)组成
- 10. string.join(seq) seq :可以是list 。 以string为连接符,吧seq中的元素连接起来得到str
- max()
- 11.string.replace(old,new,n) 将string 中的old 替换成 new ,n次默认所有
- 12.string.split(str='' , num=string.count(str)) 将string以str的分隔 返回list
- 默认分隔num次 。 也就是默认分隔所有
- 13. 'abc123'.translate(table) 根据table对象去翻译 每个字符
- 准备 table 对象
- 可以使用多次replace
- 假设 有个数据 需要将字母以符号分割成list
- 判断是否 为空
- 构建正则表达式
数字 与 字符串
字符串拼接
直接拼接
name = 'a'
sex = 'nan'
name+sex
'anan'
导入一个模块应用模块进行拼接
import operator
operator.concat(name,sex)
'anan'
平方根
应用模块求出平方根的方法 先导入math模块
import math
应用这个模块中的sqrt函数 传入9
math.sqrt(9)
返回结果为3 通过这个结果得出这个函数是求出某个数的平方根
3.0
用运算符求出平方根
xy 一个代表 代表 x乘以y
x**y 当两个* 时 代表 x的y次幂(x的y次方)而当y时小数时 就是对 x的值进行开方
4**0.5
2.0
2.0
立方跟
8**(1/3)
2.0
π(数学中的pai)
用搜狗输入法pi 可拼出 π
应用math模块
math.pi
3.141592653589793
字符串
打出 反斜杠 \ .使用 反斜杠 转义
print('\\')
\
\n 换行
print('a\nb')
a
b
进制转换
十进制 转 8进制
print('%o'%(8))
10
十进制 转 8进制
print('%o'%(12))
14
十进制 转 16进制
print('%x'%(10))
print('%x'%(15))
print('%x'%(16))
a
f
10
数学函数
bin(x) 将x转为2进制
oct(x) 将x转为8进制
hex(x) 将x转为16进制
返回的结果,前两位表示几进制 ,后面是结果
怎么转回十进制
int('100', 2)
int('10' 8)
int('22' 16)
print(bin(4))
print(oct(12))
print(hex(16))
0b100
0o14
0x10
a = 101010
print(int(str(a) , 2))
42
print(int('0b101010' , 2))
42
科学计数法 %e
print('%e'%5)
5.000000e+00
print('%e'%500)
5.000000e+02
print('%e'%-500)
-5.000000e+02
print('%e'%0.000005)
5.000000e-06
print(1e1-5)
15.0
print(1e+4-500)
9500.0
常用函数
1. 返回字符串的首字母大写
'hello'.capitalize()
'Hello'
2. center(width,‘符号’) 返回 str , 占据 width 宽度
print('jack'.center(30,'-'))
print('jack'.center(30,'-'))
print('you jump,I jump'.center(30,'-'))
-------------jack-------------
-------------jack-------------
-------you jump,I jump--------
左对齐 str.ljust()
右对齐 str.rlist()
3.string.count(str,start=0,end=len(string))
str3 = '哄妈咪妈咪哄哄妈咪妈咪哄哄妈咪妈咪哄'
str3.count('哄')\
6
str3.count('哄',1,-2) #从下标为1的地方开始 到-2结束
4
4.string.startswith(str , start ,end)
检查 string(start:end) 是否 以 str 开头
如检查姓什么
import pandas as pd
from pandas import Series
s2 = pd.Series(['张三','李四','王五'])
s2
s2.apply(lambda x: x.startswith('张'))
0 False
1 True
2 True
dtype: bool
s2[s2.apply(lambda x: x.startswith('张'))]
0 张三
dtype: object
或者 使用
s2.apply(lambda x:x[0]=='张')
0 False
1 True
2 True
dtype: bool
s2.str.startswith('张')
0 True
1 False
2 False
dtype: bool
s3 = pd.Series([' 张三',' %李四','王五#'])
s3
0 张三
1 %李四
2 王五#
dtype: object
s3.str.strip().str.strip('%''#')
0 张三
1 李四
2 王五
dtype: object
5. string.endswith(str,start,end) 检查某个区间内是否已str 结尾
6. string.find(str,start,end) 查找 string 的 start-end 范围内 str 在整体的索引位
找不到返回-1
str6 = '大吉大利,今晚吃鸡'
str6.find('大',str6.find('大')+1)
str6.find('大',1)
2
str6.find('明晚')
-1
假设一个长字符
mimi = 'ljfldasjfe@1388888888@kejlasd'
x= mimi.find('@')
y= mimi.find('@',x+1)
y
22
mimi[x+1:y]
'1388888888'
6. string.rfind(str,start,end) 从右往左查找 string 的 start-end 范围内 str 在整体的索引位
str7 = 'a1234a'
str7.rfind('a')
5
str7.rfind('b')
-1
8. string.index(str,start,end) 同 find 但是找不到会报错
str7.index('a')
0
str7.index(‘b’)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-98-d8193af088b0> in <module>
----> 1 str7.index('b')
ValueError: substring not found
9.判断 string.isalnum 判断 string 是否有 纯数字字母(包含汉字)组成
'`abc123'.isalnum()`
True
'阿是欧到那时空间的123'.isalnum()
True
'asf-123'.isalnum()
False
10. string.join(seq) seq :可以是list 。 以string为连接符,吧seq中的元素连接起来得到str
str10 = '天地玄航'
'*'.join(str10)
'天地玄航'
'-'.join(('2020','8','17'))
'2020-8-17'
max()
max('avxbnAVXBN')
'x'
min('asdzxcAVDVG')
'A'
11.string.replace(old,new,n) 将string 中的old 替换成 new ,n次默认所有
'abc-abc-abc'.replace('a','A')
'Abc-Abc-Abc'
'abc-abc-abc'.replace('a','HAHA',1)
'HAHAbc-abc-abc'
12.string.split(str=’’ , num=string.count(str)) 将string以str的分隔 返回list
默认分隔num次 。 也就是默认分隔所有
str12 = '张三-|-李四-|-王五-|-赵六'
str12.split('-|-')
['张三', '李四', '王五', '赵六']
str12.split('-|-',1)
['张三', '李四-|-王五-|-赵六']
13. ‘abc123’.translate(table) 根据table对象去翻译 每个字符
准备 table 对象
intable = 'abcl'
outtable = 'ABCy'
table=str.maketrans(intable,outtable)
'abcd-abc1-123'.translate(table)
'ABCd-ABC1-123'
可以使用多次replace
'abcd-abc1-123'.replace('a','A').replace('b','B').replace('c','C').replace('1','y')
'ABCd-ABCy-y23'
正则
import re
假设 有个数据 需要将字母以符号分割成list
str1 = 'a,b.c!d;;;;ffe/gg,%h'
准备转换的table
intable = ',.!;/%'
outtable = ',,,,,,'
table2=str.maketrans(intable,outtable)
进行替换
str1.translate(table2)
'a,b,c,d,,,,ffe,gg,,h'
分割
str1.translate(table2).split(',')
['a', 'b', 'c', 'd', '', '', '', 'ffe', 'gg', '', 'h']
判断是否 为空
[each for each in str1.translate(table2).split(',') if bool(each)]
['a', 'b', 'c', 'd', 'ffe', 'gg', 'h']
使用正则处理
str1
'a,b.c!d;;;;ffe/gg,%h'
构建正则表达式
reg = re.compile('[a-zA-Z]+')
re.findall(reg,str1)
['a', 'b', 'c', 'd', 'ffe', 'gg', 'h']
正则含义
‘abc’连续的三个字符abc
[abc123] abc123中的一个
[a-z] a-z中的一个
[A-Y] A-Y中的一个
[0-9] 0-9中的一个
[a-zA-Z0-9] a-zA-Z0-9 一个
元字符
. 就是一个点
. 任意一个字符
\w 任意一个 字母数字下划线,在python汇还有一个中文
\W 不是任意一个 字母数字下划线,在python汇还有一个中文
\s 一个空白
\S 非空白
\d 一个数字
\D 不是一个数字
量词
{1,4} 出现1-4次
{1,} 出现一次以上
一次以上
{0,} 任意次
任意次
{0,1} 0或1次 ,又或者无
? 0或1次 ,又或者无
(abc|\d{5}|\w) 竖线隔开的 三个东西中的一个
str1
'a,b.c!d;;;;ffe/gg,%h'
reg2 = re.compile('\W+')
re.split(reg2,str1)
['a', 'b', 'c', 'd', 'ffe', 'gg', 'h']
str1
'a,b.c!d;;;;ffe/gg,%h'
re.sub(reg2,',',str1)
['a', 'b', 'c', 'd', 'ffe', 'gg', 'h']
希望发布的内容对您有帮助