Python——字符串基础

字符串编码:Unicode

        ord()用于将字符转换为Unicode 码

        chr()用于将Unicode 码转换为字符

Eg:

>>> ord("高")
>>> chr("39640")

39640

'高' 

字符串定义:单双引号都可定义(三连续单/双引号可进行多行输入)

转义字符:

字符串拼接:

        1. 可以使用+将多个字符串拼接起来。
        (1) 如果+两边都是字符串,则拼接。(效率上join()更快)
        (2) 如果+两边都是数字,则加法运算。

        (3) 如果+两边类型不同,则抛出异常。

字符串复制:

使用*可以实现字符串复制。

不换行打印:end=""

print("abc",end="")
print("def")

        abcdef

从控制台读取字符串:input()

str()实现数字转型字符串:

>>> str(3.14e2)

’314.0’ 

使用[]提取字符:

正向搜索:
        最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1
为止。
反向搜索:
        最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)
为止。
replace()实现字符串替换:

 a=a.replace("改变前的字符","改变后的字符")

replace本身不改变字符串

字符串切片 slice 操作:

        [起始偏移量 start:终止偏移量 end:步长 step]

        切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始
偏移量小于 0 则会当做 0,终止偏移量大于“长度-1”会被当成-1。例如:

>>> "abcdefg"[3:50]


'defg'

Tip:有头没尾

split()分割和 join()合并:

a.split("分割物")        即以什么分割

>>> a = "to be or not to be"
>>> a.split('be')

"'to ', ' or not to ', ''

a.join("合并物")         即以什么合并

>>> a = ['sxt','sxt100','sxt200']
>>> '*'.join(a)

'sxt*sxt100*sxt200'

字符串驻留机制:就是合法标识符会缓存在同一位置

>>> a = "abd_33" 
>>> b = "abd_33" 
>>> a is b
True
>>> c = "dd#" 
>>> d = "dd#" 
>>> c is d
False

常用查找方法:

len(a) 字符串长度 
a.startswith('')    以指定字符串开头
a.endswith('')      以指定字符串结尾

a.find('')               第一次出现指定字符串的位置
a.rfind('')              最后一次出现指定字符串的位置
a.count("")          指定字符串出现了几次
a.isalnum()          所有字符全是字母或数字

去除首尾信息:

a.strip("指定字符")去除左右两边指定字符

a.lstrip("指定字符")去除左边指定字符

a.rstrip("指定字符")去除右边指定字符

大小写转换:

a.capitalize()    产生新的字符串,首字母大写
a.title()             产生新的字符串,每个单词都首字母大写
a.upper()         产生新的字符串,所有字符全转成大写
a.lower()          产生新的字符串,所有字符全转成小写

a.swapcase()   产生新的,所有字母大小写转换

其他方法:

 isalnum() 是否为字母或数字
 isalpha() 检测字符串是否只由字母组成(含汉字)。
 isdigit() 检测字符串是否只由数字组成。
 isspace() 检测是否为空白符
 isupper() 是否为大写字母
 islower() 是否为小写字母

format()基本用法:

>>> a = "名字是:{name},年龄是:{age}" 
>>> a.format(name="giaohu",age=18)
'名字是:giaohu,年龄是:18'

填充与对齐:

^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

>>> "我是{name},我喜欢数字{num:*^8}".format(name="giaohu",num="666")
'我是giaohu,我喜欢数字**666***' 

数字格式化:

 可变字符串: io.StringIO()

import io
s="Hello,world?"
sio=io.StringIO(s)
sio.seek(11)
sio.write("!")
s=sio.getvalue()
print(s)

'Hello,world!'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值