技术标签: python字符转化为字节的内置函数
python字符串内置函数
1、字符串
定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串
特性:
1.只能存放一个值
2.不可变
3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
补充:
1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf'
2.unicode字符串与r连用必需在r前面,如name=ur'l\thf'
2、字符串常用操作
# 1字母处理:
.upper() # 全部大写
.lower() # 全部小写
.swapcase() # 大小写互换
.capitalize() # 首字母大写,其余小写
.title() # 首字母大写
# 2格式化相关
.ljust(width) # 获取固定长度,左对齐,右边不够用空格补齐
.rjust(width) # 获取固定长度,右对齐,左边不够用空格补齐
.center(width) # 获取固定长度,中间对齐,两边不够用空格补齐
.zfill(width) # 获取固定长度,右对齐,左边不足用0补齐
# 3 字符串搜索相关
.find() # 搜索指定字符串,没有返回-1
.index() # 同上,但是找不到会报错
.rfind() # 从右边开始查找
.count() # 统计指定的字符串出现的次数
# 上面所有方法都可以用index代替,不同的是使用index查找不到会抛异常,而find返回-1
# 4字符串替换
.replace('old','new') # 替换old为new
.replace('old','new',次数) # 替换指定次数的old为new
s='hello world'
print(s.replace('world','python'))
print(s.replace('l','p',2))
print(s.replace('l','p',5))
执行结果:
hello python
heppo world
heppo worpd
# 5字符串去空格及去指定字符
.strip() # 去两边空格
.lstrip() # 去左边空格
.rstrip() # 去右边空格
.split() # 默认按空格分隔
.split('指定字符') # 按指定字符分割字符串为数组
s=' h e-l lo '
print(s)
print(s.strip())
print(s.lstrip())
print(s.rstrip())
print(s.split('-'))
print(s.split())
# 6字符串判断相关
.startswith('start') # 是否以start开头
.endswith('end') # 是否以end结尾
.isalnum() # 是否全为字母或数字
.isalpha() # 是否全字母
.isdigit() # 是否全数字
.islower() # 是否全小写
.isupper() # 是否全大写
.istitle() # 判断首字母是否为大写
.isspace() # 判断字符是否为空格
# 补充
bin() # 十进制数转八进制
hex() # 十进制数转十六进制
range() # 函数:可以生成一个整数序列
type() # 查看数据类型
len() # 计算字符串长度
format() # 格式化字符串,类似%s,传递值能多不能少
3、python中str函数isdigit、isdecimal、isnumeric的区别
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
4、内置函数
数学运算(7个)
类型转换(24个)
序列操作(8个)
对象操作(7个)
反射操作(8个)
变量操作(2个)
交互操作(2个)
文件操作(1个)
编译执行(4个)
装饰器(3个)
数学运算
abs:求数值的绝对值
abs(-2)
divmod:返回两个数值的商和余数
divmod(5,2)
divmod(5.5,2)
max:返回迭代对象中的元素的最大值或者所有参数的最大值
max(1,2,3) # 传入3个参数 取3个中较大者
max('1234') # 传入1个可迭代对象,取其最大元素值
max(-1,0,key=abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较大者
min:返回可迭代对象中的元素的最小值或者所有参数的最小值
min(1,2,3) # 传入3个参数 取3个中较小者
min('1234') # 传入1个可迭代对象,取其最小元素值
min(-1,-2,key=abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较小者
pow:返回两个数值的幂运算值或其余指定整数的模值
pow(2,3)
round:对浮点数进行四舍五入求值
round(1.1111,1)
sum:对元素类型是数值的可迭代对象中的每个元素求和
sum((1,2,3,4)) # 传入可迭代对象、元素类型必须是数值型
类型转换
bool:根据传入的参数的逻辑值创建一个新的布尔值
bool()或bool(0) # 数值0、空值为False
int:根据传入的参数创建一个新的整数
int() # 不传入参数时,得到结果0
float:根据传入的参数创建一个新的浮点数
float() # 不提供参数的时候,返回0.0
complex:根据传入参数创建一个新的复数
complex() # 当两个参数都不提供时,返回复数 0j
str:返回一个对象的字符串表现形式(给用户)
bytearray:根据传入的参数创建一个新的字节数组
bytearray('中文','utf-8')
bytearray(b'\xe4\xb8\xad\xe6\x96\x87')
bytes:根据传入的参数创建一个新的不可变字节数组
bytes('中文','utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
memoryview:根据传入的参数创建一个新的内存查看对象
v=memoryview(b'asdf')
print(v[0]) # 97
print(v[-1]) # 102
ord:返回Unicode字符对应的整数
print(ord('a'))
chr:返回整数所对应的Unicode字符
print(chr(97))
bin:将整数转换成2进制字符串
oct:将整数转化成8进制数字符串
hex:将整数转换成16进制字符串
tuple:根据传入的参数创建一个新的元组
list:根据传入的参数创建一个新的列表
dict:根据传入的参数创建一个新的字典
set:根据传入的参数创建一个新的集合
frozenset:根据传入的参数创建一个新的不可变集合
a=frozenset(range(10))
print(a)
# frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
enumerate:根据可迭代对象创建枚举对象
l1=['one','two','three','five']
print(list(enumerate(l1)))
# [(0, 'one'), (1, 'two'), (2, 'three'), (3, 'five')]
print(list(enumerate(l1,start=1))) # 指定起始值
# [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'five')]
range:根据传入的参数创建一个新的range对象
iter:根据传入的参数创建一个新的可迭代对象
a=iter('asdf')
print(a) #
print(next(a)) # a
print(next(a)) # s
print(next(a)) # d
print(next(a)) # f
print(next(a)) # 报错StopIteration
slice:根据传入的参数创建一个新的切片对象
c1=slice(5)
print(c1) # slice(None, 5, None)
c1=slice(2,5)
print(c1) # slice(2, 5, None)
c1=slice(1,4,7)
print(c1) # slice(1, 4, 7)
super:根据传入的参数创建一个新的子类和父类关系的代理对象
# 定义父类A类
class A(object):
def __init__(self):
print(A.__init__)
# 定义子类,继承A
class B(A):
def __init__(self):
print(B.__init__)
super().__init__()
# super调用父类方法
b=B()
print(b)
object:创建一个新的object对象
all:判断可迭代对象的每个元素是否都为True值
print(all([1,2])) # 列表中每个元素逻辑值均为True,返回True
print(all([0,2])) # 列表中0的逻辑值为False,返回False
any:判断可迭代对象的元素是否有为True值的元素
# 列表元素有一个为True,则返回True
# 列表元素全部为False,则返回False
filter:使用指定方法过滤可迭代对象的元素
map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象
next:返回可迭代对象中的下一个元素值
# 传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出StopIteration 异常
reversed:反转序列生成新的可迭代对象
sorted:对可迭代对象进行排序,返回一个新的列表
zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器
对象操作
help:返回对象的帮助信息
dir:返回对象或者当前作用域内的属性列表
id:返回对象的唯一标识符
hash:获取对象的哈希值
type:返回对象的类型,或者根据传入的参数创建一个新的类型
len:返回对象的长度
ascii:返回对象的可打印表字符串表现方式
format:格式化显示值
vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表
class A(object):
pass
a=A()
print(a.__dict__) # {}
print(vars(a)) # {}
a.name='buer'
print(a.__dict__) # {'name': 'buer'}
print(vars(a)) # {'name': 'buer'}
#反射操作
__import__:动态导入模块
print(__import__('os'))
print(__import__('time'))
#
#
isinstance:判断对象是否是类或者类型元组中任意类元素的实例
issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类
hasattr:检查对象是否含有属性
class Student:
def __init__(self,name):
self.name=name
s=Student('Ethan')
print(hasattr(s,'name')) # 含有name属性为True
print(hasattr(s,'age')) # 不含有age属性为False
getattr:获取对象的属性值
print(getattr(s,'name')) # 存在属性name,Ethan
print(getattr(s,'age',20)) # 不存在属性age,但提供了默认值,返回默认值
print(getattr(s,'age')) # 不存在属性age,未提供默认值,调用报错
报错如下:
Traceback (most recent call last):
File "D:/test.py", line 30, in
print(getattr(s,'age'))
AttributeError: 'Student' object has no attribute 'age'
setattr:设置对象的属性值
print(s.name) # Ethan
setattr(s,'name','Tom') # name属性存在,做赋值操作
setattr(s,'age',18) # age属性不存在,创建这个属性
print(s.name) # Tom
print(s.age) # 18
delattr:删除对象的属性
class Student:
def __init__(self,name):
self.name=name
def foo(self):
print('hello %s' % self.name)
a=Student('Ethan')
print(a.name) # Ethan
print(a.foo()) # hello Ethan
print(delattr(a,'name')) # name属性被删除
print(a.name) # 调用报错
Traceback (most recent call last):
File "D:/test.py", line 50, in
print(a.name) # 调用报错
AttributeError: 'Student' object has no attribute 'name'
callable:检测对象是否可被调用
class B:
def __call__(self, *args, **kwargs):
print('instances are callable now')
print(callable(B)) # 类B是可调用对象
b=B() # 调用类B
print(callable(b)) # 实例b是可调用对象
print(b()) # 调用实例b成功
# instances are callable now
#变量操作
globals:返回当前作用域内的全局变量和其值组成的字典
locals:返回当前作用域内的局部变量和其值组成的字典
#交互操作
print:向标准输出对象打印输出
input:读取用户输入值
user=input('please input your name:')
#文件操作
open:使用指定的模式和编码打开文件,返回文件读写对象
# 写入文件
a= open('a.text','w')
a.write('124sdgadgahg ggadh')
# 读取文件
a= open('a.text','rt')
print(a.read())
a.close()
#编译执行
compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值
# 流程语句使用exec
code1='for i in range(5):print(i)'
compile1=compile(code1,'','exec')
exec (compile1)
# 0
# 1
# 2
# 3
# 4
# 简单求值表达式用eval
code2='1+2+3+4'
compile2=compile(code2,'','eval')
print(eval(compile2)) # 10
eval:执行动态表达式求值
print(eval('1+2+3+4')) # 10
print(eval('2*2*2')) # 8
print(eval('10/2+2*2')) # 9.0
exec:执行动态语句块
exec ('a=1+2')
print(a) # 3
exec ('b=4*3/2-1')
print(b) # 5.0
repr:返回一个对象的字符串表现形式(给解释器)
a='hello world'
print(str(a)) # hello world
print(repr(a)) # 'hello world'
#装饰器
property:标示属性的装饰器
class A:
def __init__(self):
pass
@property
def foo(self):
print('1111111111')
a=A()
print(a.foo) # 访问属性,不需要加()执行foo
classmethod:标示方法为类方法的装饰器
class B(object):
def __init__(self):
pass
@classmethod
def foo(cls):
print(cls)
print(B.foo()) # 类对象调用类方法
#
b=B()
print(b.foo()) # 类实例对象调用类方法
#
staticmethod:标示方法为静态方法的装饰器
class C(object):
def __init__(self):
pass
@staticmethod
def f1():
print('hahahha')
print(C.f1()) # 类调用
c=C()
print(c.f1()) # 类实例对象调用
#补充:
"""
python内置装饰器
在python中有三个内置的装饰器,都是跟class相关的:staticmethod、classmethod、property.
@staticmethod 是类的静态方法,其跟成员方法的区别是没有self参数,并且可以在类不进行实例化的情况下调用
@classmethod 与成员方法的区别在于所接收的第一个参数不是self(类实例的指针),而是cls(当前类的具体类型)
@property 是属性的意思,表示可以通过类实例直接访问的信息
"""
class Foo(object):
def __init__(self,var):
super(Foo,self).__init__()
self._var=var
@property
def var(self):
return self._var
@var.setter
def var(self,var):
self._var=var
f=Foo('var1')
print(f.var)
f.var='var2'
print(f.var)
"""
注意,对于Python新式类(new-style class),如果将上面的 “@var.setter” 装饰器所装饰的成员函数去掉,
则Foo.var 属性为只读属性,使用 “foo.var = ‘var 2′” 进行赋值时会抛出异常。
但是,对于Python classic class,所声明的属性不是 read-only的,所以即使去掉”@var.setter”装饰器也不会报错。
"""
文章浏览阅读5.5k次,点赞4次,收藏13次。打开HBuilder X,点击文件,选择新建一个项目首先点击HBuilder X菜单栏工具下面的设置,然后在运行配置里面设置微信开发者工具的安装路径在微信开发者工具中,点击设置下面的安全设置,然后开启服务端口最后在HBuilder X运行配置中填写web服务调用URL(本地IP+端口号)点击运行到小程序模拟器,微信开发者工具即可正确运行运行结果如下转载自:https://blog.csdn.net/weixin_39150852/article/detai.._用uniapp写一个微信小程序
文章浏览阅读3.2k次。nA, inB 对应的是 列向量欧氏距离:指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。二维或三维中的欧氏距离就是两点之间的实际距离。相似度= 1/(1+欧式距离)相似度= 1.0/(1.0 + la.norm(inA - inB))物品对越相似,它们的相似度值就越大。皮尔逊相关系数:度量的是两个向量之间的相似度。相似度= 0.5 + 0...._向量长度不同可以计算距离吗
文章浏览阅读497次。求N!的二进制表示中最低位1的位置。 最笨的莫过于对N!直接移位了,然后找到1的位置。[cpp] view plaincopyprint?#include using namespace std; const int N=6; int Factorial(int N) { if(N>1) { return N*F_编程阶乘难理解
文章浏览阅读1k次。Linux基础知识学习——第三天:firewall防火墙的关闭。_firewall 关闭
文章浏览阅读2.9k次。早期的管理活动和管理思想一、古罗马帝国的卓越组织古罗马帝国之所以兴盛,在很大程度上应归功于卓越的组织才能,他们采取了较为分权的组织管理形式,从一个小城市发展成为一个世界帝国,在公元2世纪取得了统治欧洲和北非的成功,并延续了几个世纪的统治。二、中国古代的管理实践 在中国古代典籍中也有不少有关管理思想的记载,如《周礼》中记有对行政管理制度和责任的具体叙述。《孟子》、《孙子》等书对管_让学生了解“组织”的概念从古典管理思想,中国古代管理思想的逻辑体系到现代管理
文章浏览阅读169次。 雪碧图是优化网站性能的一个重要手段; 开发中,我们常常遇到这样的问题:一大堆的小icon图标,比如个性化的箭头、按钮等;当加载网页时,则要一个个地加载这些小图标,每一个小图标都需要http请求,这增加了网络延迟的可能; 假设把这些小图标都放到一张图片中,使用的时候直接获取图片对应位置上的图标,那么网页加载时只需要请求这一张图片,显然这种方式减少了http请求;cs..._b) css sprite with sass resource traditional css sprite with a sass styleshe
文章浏览阅读382次。从开源中国控件里而来,并自己改进一些功能BaseRecyclerRefreshLayout:主要用于控制全局的手势是否上拉刷新,正常滑动,下拉加载三种情况.手势控制源头public class BaseRecyclerRefreshLayout extends SwipeRefreshLayout implements SwipeRefreshLayout.OnRefreshListener..._封装刷新加载功能 android
文章浏览阅读2.5k次。目录1.生产者消费者问题1.1.问题分析1.2.如何实现2.多生产者多消费者问题2.1.问题描述2.2.问题分析2.3.如何实现1.生产者消费者问题1.1.问题分析1.2.如何实现2.多生产者多消费者问题多是指多类别的生产者和消费者,生产者生产不同产品,消费者消费不同产品。2.1.问题描述2.2.问题分析2...._用信号量解决经典同步问题的方法生产者消费者问题,
文章浏览阅读9.6k次,点赞9次,收藏73次。一、网址以及demo官方文档:http://ailabel.com.cn/public/ailabel/api/index.html#1demo地址1: http://ailabel.com.cn/public/ailabel/demo/label/index.htmldemo地址2: http://ailabel.com.cn/public/ailabel/demo/index.html二、我的实例代码(vue环境下)三、如有不懂的添加官方qq群向大佬请教(378301400)<tem_vue图片标注插件
文章浏览阅读1.2k次。大数据系列修炼-Scala课程61核心内容: 1、Scala中的隐式参数与隐式转换的联合使用操作代码实战1、Scala中的隐式参数与隐式转换的联合使用def biggerT(implicit m:T=>Ordered[T]) = ……的含义: 1>bigger是一个泛型函数,并且是一个柯里化函数,并且函数的第二个参数是一个函数(隐式函数呢)。 2>m是一个隐式参数,这个隐式参数指向一个匿名函数_深入理解scala中的隐式转换系统 - 掌握了知识的本质,很多事情就简单了 - csdn
文章浏览阅读1k次。Hessian客户端主要是通过proxy代理来实现 当客户端调用远程接口方法时 会被HessianProxy 代理 HessianProxy invoke方法主要做以下工作1.把调用的 方法名称 参数 序列化2.通过HttpURLConnection向服务端发送调用请求3.服务端返回的结果 反序列化Proxy是由HessianProxyFactory创建HessianProx_hessinproxyutil
文章浏览阅读1.3w次,点赞10次,收藏17次。鹅厂老将被拒,蚂蚁金服嘲讽,JVM问了4道题,一道都答不上来,外包都没资格,Java界面试太刺激了!!!自从蚂蚁金服上市,IT界多了一批千万富翁后,去投奔的程序员愈发多了,进去了皆大欢喜,而折腾一圈还是没能入职的可就难过了。最难过的是下面这位,在简历环节就直接被刷的。个人履历还不错,在腾讯工作多年,转战二线小厂,技术扎实,但蚂蚁金服连面试机会都不给就拒了,给出的答复是“简历不合适”,惹得这位直呼“心生愤怒,倍感羞辱”。有人在他的帖子下评论:“阿里不要腾讯的人,换个说法拒绝而已。”“这个没什么_java外包面试答不上来