字符串操作

本文详细介绍Python中字符串的基本操作,如拼接、提取、切片等,并讲解了字符串格式化的多种方式。此外,还介绍了字符串的各种内置函数,如查找、替换、大小写转换等,以及如何利用字符串函数进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本使用:拼接、提取、切片等
s1=‘hello’
s2=‘world’
#连接
print(s1+s2)
print(s1[0])#提取一个字符

print(s1[1:3])#切片,s[起始:结束:步长]包括开始的下标,不包括结束的下标
print(s1 * 3)# 将指定字符串重复若干次
print(len(s1))# 统计字符个数
print(s2[1:])#从第二个开始打印
print(s2[:1])#打印第二个之前的
print(s2[:-1])
print(s2[-1:])
print(s2[:])#打印全部

print(s2[::2])#步长默认为1,而此时步长设置为2
print(s2[1:-2])
print(s2[::-1])# 逆序,步长为负时倒序提取

print(s2[-1:2:-1])#-1为起始坐标,逆序取的时候还有字符可以取
print(‘xxx’, s2[1:-1:-1])#2为起始坐标,逆序的时候没有字符可以取

print(ord(‘h’))#获取字符的ASCII码
print(chr(100))#获取对应ASCII码的字符
格式化:就是将不同的变量拼接成一个字符串

  • 通用方案:使用%进行占位
  • 特有方案:使用字符串的format方法
    name=‘zhangsan’
    age=18
    print(“我的名字 %s,今年 %d” %(name,age))#通用
    print(“我的名字 {},今年 {}”.format(name,age))#推荐使用,不设置指定位置,按默认顺序
    print(“我的名字 {1},今年 {0}”.format(name,age))#根据序号进行排序
    print(“我的名字 {n},今年 {a}”.format(a=age,n=name))#设置参数
    执行结果:
    在这里插入图片描述
    字符串函数:
    s=‘nice to meet you’
    print(s.split())#默认按照空格进行切割,返回的是一个列表
    print(s.split(sep=‘t’))#指定切割内容,如果切割内容不存在,就返回原内容
    print(s.split(maxsplit=1))#指定切割次数
    print(s.rsplit(maxsplit=1))#从右边开始切割

s1=‘hello\nworld\nnfjb’
print(s1.splitlines())#按照\n进行切割

lt=[‘hello’,‘world’]
print(’’.join(lt))#拼接
print(’
’.join(list(s)[:3]))

print(s.find(‘t’)#默认从左开始查找,返回的是第一个匹配的值的下标,如果查找的值不存在就返回-1
print(s.rfind(‘m’))#从右边开始查找,找到返回下标,找不到返回-1
print(s.count(‘m’)#统计出现次数,如果不存在就返回0

print(s.startswitch(‘nice’))#是否以指定内容开头,是就返回True
print(s.endswitch(’!))#是否以指定内容结尾,不是返回False

print(s.upper())#全大写
print(s.lower())#全小写
print(s.swapcase())#大小写转换,大写转小写,小写转大写
print(s.capitalize())#第一个单词首字母大写
print(s,title())#每个单词的首字母大写
print(s.replace(‘t’,‘T’))#替换

print(‘abhjb’.isupper())#判断是否是大写,是返回True
print(‘uigb’.islower())#判断是否是小写
print(s.istitle())#判断每个单词首字母是否大写,是返回True
print(‘bdj’.isedcimal())#判断是否是十进制
print(‘nvsjkh’.isalpha())#判断是否是字母
print(‘bdh’.isalnum())#判断是否全是字母或者数字
print(‘viug’.isidentifier())#判断是否是正确的标识符

print(‘hudhf’.ljust(10)+‘hgy’)#左对齐,默认填充空格
print(‘jfdb’.rjust(5))#右对齐
print(‘bhd’.center(9,’#’))#居中对齐
print(’#’+’ bjdb\n’.strip()+’’)#去掉两边的内容
print(‘bjkfdb’.strip(‘bf’))#去掉指定内容,如果有多个就去掉第一个匹配的值
print(’&’+’ uigfu’+’
&’.lstrip())#去掉左边的
print(’&’+’ uigfu’+’*&’.rstrip())#去掉右边的

#拷贝,深浅拷贝是针对可变元素而言的,不可变元素不存在深浅拷贝的问题
import copy
#不可变类型
d=6525
d1=d
d3=copy.copy(d)
d4=copy.deepcopy(d)
print(d1)
print(d3)
print(d4)#d1、d3、d4的值一样

#可变类型(引用类型)
s=[12,3,2,[8,6,4]]
s2=s
s3=copy.copy(s)#浅拷贝,只拷贝对象本身,内部元素只拷贝引用
s4=copy.deepcopy(s)#深拷贝,不但拷贝对象还会拷贝内部元素
print(s is s2)
print(s is s3)
print(s is s4)
s[0]=50
s[3][2]=100
print(s2)
print(s3)
print(s4)
s5=s.copy()#浅拷贝
print(s is s5)

s[2]=40
s[3][1]=103
print(s5)

在电子设计自动化(EDA)领域,Verilog HDL 是一种重要的硬件描述语言,广泛应用于数字系统的设计,尤其是在嵌入式系统、FPGA 设计以及数字电路教学中。本文将探讨如何利用 Verilog HDL 实现一个 116 点阵字符显示功能。116 点阵显示器由 16 行和 16 列的像素组成,共需 256 个二进制位来控制每个像素的亮灭,常用于简单字符或图形显示。 要实现这一功能,首先需要掌握基本的逻辑门(如与门、或门、非门、与非门、或非门等)和组合逻辑电路,以及寄存器和计数器等时序逻辑电路。设计的核心是构建一个模块,该模块接收字符输入(如 ASCII 码),将其转换为 116 的二进制位流,进而驱动点阵的 LED 灯。具体而言,该模块包含以下部分:一是输入接口,通常为 8 位的 ASCII 码输入,用于指定要显示的字符;二是内部存储,用于存储字符对应的 116 点阵数据,可采用寄存器或分布式 RAM 实现;三是行列驱动逻辑,将点阵数据转换为驱动 LED 矩阵的信号,包含 16 个行输出线和 16 个列使能信号,按特定顺序选通点亮对应 LED;四是时序控制,通过计数器逐行扫描,按顺序控制每行点亮;五是复用逻辑(可选),若点阵支持多颜色或亮度等级,则需额外逻辑控制像素状态。 设计过程中,需用 Verilog 代码描述上述逻辑,并借助仿真工具验证功能,确保能正确将输入字符转换为点阵显示。之后将设计综合到目标 FPGA 架构,通过配置 FPGA 实现硬件功能。实际项目中,“led_lattice”文件可能包含 Verilog 源代码、测试平台文件、配置文件及仿真结果。其中,测试平台用于模拟输入、检查输出,验证设计正确性。掌握 Verilog HDL 实现 116 点阵字符显示,涉及硬件描述语言基础、数字逻辑设计、字符编码和 FPGA 编程等多方面知识,是学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值