Python学习二:字符串

一、字符串编码转换

1.1 使用encode()方法编码

str=encode([encoding="utf-8]"[,error="strict"])
默认是utf-8 如果想用简体中文也可以用gb2312
strict:遇到错误的时候就抛出异常
也可以是ignore(忽视) 还可以是replace


if __name__ == '__main__':
    value='你好,我是代码浪人,浪里浪'
    byte=value.encode('GBK')
    print(value)
    print(byte)
》》》
你好,我是代码浪人,浪里浪
b'\xc4\xe3\xba\xc3\xa3\xac\xce\xd2\xca\xc7\xb4\xfa\xc2\xeb\xc0\xcb\xc8\xcb\xa3\xac\xc0\xcb\xc0\xef\xc0\xcb'

1.2 使用encode()方法解码

str=decode([encoding="utf-8]"[,error="strict"])
默认是utf-8 如果想用简体中文也可以用gb2312
strict:遇到错误的时候就抛出异常
也可以是ignore(忽视) 还可以是replace



if __name__ == '__main__':
    value='你好,我是代码浪人,浪里浪'
    byte=value.encode('GBK')
    print(value)
    print(byte)
    print(byte.decode('GBK'))

》》》

你好,我是代码浪人,浪里浪
b'\xc4\xe3\xba\xc3\xa3\xac\xce\xd2\xca\xc7\xb4\xfa\xc2\xeb\xc0\xcb\xc8\xcb\xa3\xac\xc0\xcb\xc0\xef\xc0\xcb'
你好,我是代码浪人,浪里浪

二、字符串常规操作

2.1 拼接字符串

直接使用加号(同类型,不同类型会报错)

if __name__ == '__main__':
    value1="你好"
    value2=123
    print(value1+value2)

在这里插入图片描述

2.2 计算字符串的长度

汉字在GBK/GB2312编码占2个字节
在UTF-8.uncode占3个字节(或者4个字节)

计算长度提供len(string) 函数计算方法


if __name__ == '__main__':
    value1="你好"
    print(len(value1))
    print(len(value1.encode('GBK')))
》》》
2 
4

2.3 截取字符串

string[start🔚step]
start:开始位置,默认为0
end:结束位置,不包含
step:步长,默认为1

if __name__ == '__main__':
    value1="你好345678"
    print(value1[2:])
    print(value1[:2])
    print(value1[0:8:2])

》》》
345678
你好
你357

2.4 分割、合并字符串

分割

str.split(sep,maxsplit)
str:要分割的字符串
sep:指定分隔符,默认为None
maxsplit: 可选参数,默认为-1-> 分割次数

合并

strnew=str.join(iterable)
strnew:新的字符串
string:用于合并时候的分隔符号
iterable:可迭代对象,将迭代对象中的所有元素按照分个字符串进行拼接


  list_str=['我','爱','你']
    list_new='*'.join(list_str)
    print(list_new)
》》》
我*爱*你

2.5 检索字符串

方法一:count()计算数量

str.count(sub[,start[,end]])

str检索的字符串
sub:需要检索的子字符串
start:开始位置
end:结束位置

str='123456'
print(str.count(6))
》》》
1

方法二:find()计算位置

str.find(sub[,start[,end]])

str检索的字符串
sub:需要检索的子字符串
start:开始位置
end:结束位置

str='123456'
print(str.find(6))
》》》
5

方法三:in 判断位置

if __name__ == '__main__':
    list_str=['我','爱','你']
    print('爱' in list_str)
》》》
True

方法四:index()方法和find一样,只不过是不存在出抛出异常

str.index(sub[,start[,end]])

str检索的字符串
sub:需要检索的子字符串
start:开始位置
end:结束位置

方法五:startswitch()方法 返回Ture或者False

str.startswitch(prefix[,start[,end]])

str检索的字符串
prefix:需要检索的子字符串
start:开始位置
end:结束位置

if __name__ == '__main__':
    list_str=['我','爱','你']
     print(list_str.startswitch('我'))
》》》
True

方法六:endswitch()方法 返回Ture或者False

str.endswitch(prefix[,start[,end]])

str检索的字符串
prefix:需要检索的子字符串
start:开始位置
end:结束位置


if __name__ == '__main__':
    list_str=['我','爱','你']
    print(list_str.endswitch('你'))
》》》
True

2.6 字母的大小写转化

大写转小写lower()方法,小写转大写upper()

if __name__ == '__main__':
    str='ABC'
    print(str.lower())
    str='abc'
    print(str.upper())
》》》
abc
ABC

2.7 去除字符串中的空字符串和特殊字符串

方法一:strip()

str.strip([char])//默认为是去除首尾空字符和特殊字符串,char是可选,可指定多个

方法二:lstrip()

str.lstrip([char])//默认为是去除左边空字符和特殊字符串,char是可选,可指定多个,

方法三:rstrip()

str.rstrip([char])//默认为是去除右边空字符和特殊字符串,char是可选,可指定多个

2.8 格式化字符串

1.使用% 操作符号

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

我叫 小明 今年 10 岁!


在这里插入图片描述
格式化操作符辅助指令:
在这里插入图片描述

2.format 格式化函数

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

也可以设置参数

# -*- coding: UTF-8 -*-
 
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的


网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com

也可以向 str.format() 传入对象:


 
class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

数字

>>> print("{:.2f}".format(3.1415926))
3.14

在这里插入图片描述
此外我们可以使用大括号 {} 来转义大括号,如下实例:

 
print ("{} 对应的位置是 {{0}}".format("runoob"))
》》》
runoob 对应的位置是 {0}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值