详解python string类型 bytes类型 bytearray类型

Python中的字符串类型string

在Python中,字符串类型为内置数据类型之一,用于表示文本类型的数据。Python的字符串类型是不可变的,这意味着你不能改变一个字符串的值。Python的字符串类型有很多内置方法,可用于字符串的各种操作,如切片,查找,替换等。

创建字符串

Python中创建字符串的方法有两种:用单引号(')或双引号(")将字符围起来或使用三引号(''')或三双引号(""")

#使用单引号
string1 = 'Hello World'

#使用双引号
string2 = "Hello World"

#使用三引号
string3 = '''Hello 
World'''

#使用三双引号
string4 = """Hello
World"""

字符串的常用操作

字符串拼接

Python中的字符串拼接可以使用加号(+)来实现,也可以使用join()方法来实现。

str1 = "Hello"
str2 = "World"
#直接使用加号拼接字符串
result = str1 + " " + str2
print(result)
#使用join()方法拼接字符串
result2 = " ".join([str1,str2])
print(result2)

字符串格式化

字符串格式化是将变量插入到一个字符串中,通常使用百分号(%)格式化或字符串模板({})来实现。

#使用百分号(%)格式化字符串
name = "Lucy"
age = 18
result = "My name is %s and I am %d years old." %(name, age)
print(result)

#使用字符串模板({})格式化字符串
name = "Lucy"
age = 18
result2 = "My name is {} and I am {} years old.".format(name, age)
print(result2)

字符串切片

Python中可以使用切片来截取字符串的一部分,也可以通过这种方式修改字符串。字符串的切片操作使用下标来表示切片的起始和终止位置,下标从0开始计数。

str1 = "Hello World"
#截取前5个字符
result = str1[0:5]
print(result)

#从第6个字符开始,直到最后一个字符
result2 = str1[6:]
print(result2)

#反转字符串
result3 = str1[::-1]
print(result3)

示例

代码示例:字符串反转

def reverse_string(text):
    return text[::-1]

print(reverse_string("Hello World"))
print(reverse_string("Python String"))

bytes类型

Python中的bytes类型是一种类似于字符串的不可变序列类型,用于存储二进制数据。bytes类型的值由小于256的整数组成,每个整数使用一个字节(8位)的内存空间存储。Python 3.x 起,bytes类型是一个内置类型,Python 2.x 版本中的二进制数据类型是 str。

可以使用bytes()函数或者字节字面量表示bytes类型的值。使用字节字面量时,需要在值的前面加上b。

#使用bytes()函数创建bytes类型
data = bytes([0x48, 0x65, 0x6c, 0x6c, 0x6f])
print(data)

#使用字节字面量创建bytes类型
data = b"Hello bytes"
print(data)

bytes类型的常用操作

字节串的转换

bytes类型与字符串类型之间可以相互转换,可以使用encode()和decode()方法来实现。

#字符串转bytes类型
text = "Hello World"
data = text.encode('utf-8')
print(data)

#bytes类型转字符串
text2 = data.decode('utf-8')
print(text2)

字节串切片

bytes类型的切片操作和字符串类型类似,只是切片的结果也是bytes类型。

data = b"Hello World"
result = data[0:5]
print(result)

示例

代码示例:计算文件的md5值

import hashlib

def calc_md5(file_name):
    with open(file_name,'rb') as f:
        data = f.read()
    md5 = hashlib.md5(data).hexdigest()
    return md5

print(calc_md5('test.png'))

bytearray类型

bytearray类型类似于bytes类型,可以存储二进制数据,不过bytearray类型的值是可变的。bytearray类型的操作和bytes类型差不多,只是支持任意位置的修改。

创建bytearray类型

bytearray类型创建方式与bytes类型类似,可以使用bytearray()函数或者字节字面量来创建。

#使用bytearray()函数创建
data = bytearray([0x48, 0x65, 0x6c, 0x6c, 0x6f])
print(data)

#使用字节字面量创建
data2 = bytearray(b"Hello bytearray")
print(data2)

bytearray类型的常用操作

字节串的转换

bytearray类型与字符串类型之间也可以相互转换,与bytes类型类似,可以使用encode()和decode()方法实现。

#字符串转bytearray类型
text = "Hello World"
data = bytearray(text.encode('utf-8'))
print(data)

#bytearray类型转字符串
text2 = data.decode('utf-8')
print(text2)

修改字节

bytearray类型支持修改任意位置的字节。

data = bytearray(b"Hello World")
data[0] = 0x68 #修改第一个字节,从'H'变成'h'
print(data)

#在指定位置插入字节
data.insert(5, 32) #在第5个字节(空格前)的位置插入一个空格
print(data)

#删除指定位置的字节
del data[5]  #删除第5个字节,即空格
print(data)

示例

代码示例:通过bytearray类型修改图片的像素

from PIL import Image

def modify_image(file_name):
    with Image.open(file_name) as img:
        data = bytearray(img.tobytes())
        for i in range(0, len(data), 4):
            data[i] = 255 - data[i]
        img2 = Image.frombytes(img.mode, img.size, bytes(data))
        img2.save('modified.png')

modify_image('test.png')

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解python string类型 bytes类型 bytearray类型 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • Scrapy爬虫Response子类在应用中的问题解析

    Scrapy是一款功能强大的Python爬虫框架,其提供了基于Twisted的异步网络框架和支持XPath以及CSS选择器等多种数据提取方式,因此备受欢迎。在使用Scrapy爬虫的过程中,经常会用到其Response子类,但是在应用中会遇到一些问题,这篇攻略将详细讲解这些问题及其解决方法。 问题1:如何处理文件下载? 在爬虫过程中,有很多情况需要下载文件(如…

    python 2023年6月6日
    00
  • python 实现以相同规律打乱多组数据

    要实现以相同规律打乱多组数据,可以通过随机数种子来实现。具体步骤如下: 导入 random 库 首先需要导入 Python 的 random 库,该库包含各种随机数生成函数。 import random 设置随机数种子 在开始生成随机数之前,需要设置随机数种子。可以选择为所有数据设置一个相同随机数种子,这样可以保证打乱的顺序是相同的,例如: random.s…

    python 2023年6月3日
    00
  • 基于Python手写拼音识别

    基于Python手写拼音识别 简介 手写拼音识别是一种将手写的汉字转化为对应的拼音的技术。它广泛应用于中文输入法中,用来提供用户输入的汉字的拼音。Python可以通过使用神经网络模型实现手写拼音识别。 准备工作 首先需要安装Python,建议使用3.x版本,同时需要安装相关的Python库,例如: numpy:用于进行数学计算 pandas:用于数据处理 m…

    python 2023年6月6日
    00
  • python生成ppt的方法

    下面是详细讲解“python生成ppt的方法”的完整攻略: 一、PPT生成工具 Python中有一个叫做python-pptx的库,该库可以让我们使用Python代码来生成Microsoft PowerPoint(简称PPT)格式的文件。 该库支持PPTX文件的创建、修改和保存,功能包括添加幻灯片、添加文本、添加图像等,可实现高度自定义。 具体安装命令如下:…

    python 2023年6月5日
    00
  • python中函数的返回值及类型详解

    Python中函数的返回值及类型详解 在Python中,函数可以有返回值,也可以没有。本文将详细讲解Python函数的返回值及类型。 函数没有返回值 在Python中,如果函数没有特意通过return语句返回任何值,那么函数就会返回None类型。 例如: def say_hello(): print("Hello, World!") re…

    python 2023年6月5日
    00
  • Python库urllib与urllib2主要区别分析

    Python库中的urllib和urllib2,是Python在处理URL、HTTP请求和响应过程中所使用的两个库。虽然两个库的名称相似,但它们在实现方式和功能方面有很大的不同。以下为详细介绍。 urllib和urllib2的区别 urllib urllib是python内置的HTTP请求库,可以处理编码解码、操作Cookie、处理代理等功能。 urllib…

    python 2023年6月3日
    00
  • Python3实现抓取javascript动态生成的html网页功能示例

    Python3实现抓取JavaScript动态生成的HTML网页功能示例 在Python中,我们可以使用第三方库Selenium来模拟浏览器行为,实现抓取JavaScript动态生成的HTML网页的功能。本文将详细讲解如何使用Selenium实现该功能,并提供两个示例。 步骤1:安装Selenium库 在使用Selenium库之前,我们需要安装它。您可以使用…

    python 2023年5月15日
    00
  • 解决Python requests 报错方法集锦

    解决Python requests报错方法集锦 在Python中,requests是一个常用的HTTP库,用于发送HTTP请求和处理HTTP响应。在使用requests库时,有时会遇到各种报错,例如“requests.exceptions.SSLError: HTTPSConnectionPool”requests.exceptions.Connection…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部