Python字符串

 一、字符串介绍

  1. 字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。

  2. Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。

  3. Python使用反斜杠“\”转义。例如,在字符串中的引号前添加“\”,此时Python解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号。

a = 'hello'                           ##正常的字符串定义方式为加单引号或者双引号

b = 'what\'s up'                      ##如果在字符串中出现了单引号,可以采取加转义

c = "what's up"                       ##或者是直接使用双引号来避免单引号

print(a)

print(b)

print(c)

hello

what's up

what's up



二、格式化   格式化字符串是指将指定的字符串转换为想要的格式。

1).     %格式化

%[(name)][flags][width].[precition]typecode

name:(可选)用于选择指定的key

flags:(可选)+左对齐、-右对齐

width:(可选)宽度

preciton:(可选)精度,默认位保留6位

typecode:必选

%s:字符串类型,但可以放入任何类型
%f:浮点数,默认保留6位
%b:将数字转换为2进制放入指定位置
%d:将数字转为整型放入指定位置
%x:将数字转为十六进制放入指定位置

massage='Hello,%s'%'word'
print(massage)

hello,word


2).       .format( )方法格式化

字符串.format(字符串、数字等)

 .format()格式化括号内的值必须比占位符要多,少于占位符会报错,多余占位符无影响


s = "I am {}, age{}".format("alex", 18)
print(s)
s1 = "I am {}, age{}".format("alex", 18, 19, 20)
print(s1)

I am alex, age18 

按照引所替换

s = "I am {0},age{1[2]}".format("Alex", [16, 17, 18])
print(s)

      I am Alex,age18


3).   f-string ,主要目的是使格式化字符串的操作更加简便。

    f-string在形式上是以 fF 修饰符引领的字符串(f'xxx'F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:

f-string用大括号 {} 表示被替换字段,其中直接填入替换内容:

name = 'Eric'
q= f'Hello, my name is {name}'
print(q)

 Hello, my name is Eric



 三、精彩实例

1).    进制转换

def f(n,x):   # n为待转换的十进制数,x为机制,取值为2-16
    a=[0,1,2,3,4,5,6,7,8,9,'A','b','C','D','E','F']
    b=[]
    while True:
        s=n//x#商
        y=n%x#余数
        b=b+[y]
        if s==0:
            break
        n=s
    b.reverse()
    for i in b:
        print(a[i],end='')

f(26,8)

32

 2).文本进度条

import time #调用time库
print("开始执行".center(25, '-')) #把开始执行放中间,不足25个用-包围
start = time.perf_counter() #记录当前时间
count = 50        #字符串宽度为50
for i in range(count + 1):
    a = "#" * i  #复制#的次数
    b = "." * (count - i) #复制.的次数
    c = (i/count) * 100   #输出百分比
    res = time.perf_counter() - start#计算时间差
    print(f"\033[1;31m\r{c:.2f}%[{a}->{b}]{res:.2f}s\033[0m", end="")
    # 输出进度条并改变颜色#,还可以改变进度条背景颜色
    time.sleep(0.1) #每个任务完成眠时间0.1秒
print("\n" + "结束执行".center(25, '-')) #换行把结束执行放中间,不足25个用-包围

-----------开始执行----------
100.00%[##################################################->]5.03s
-----------结束执行----------

四、字符串的常见操作

1).查找与替换

字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。

如果该字符串中有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引;若没有找到符合条件的子串,则返回-1

find()方法的基本使用语法如下:

      source_string.find(sub_string)

其中,

  • source_string:源字符串
  • sub_string:待查的目标子字符串
  • find:字符串查找方法的语法关键字
    # coding=utf-8
     
    # 创建一个字符串
    source_string = 'The past is gone and static'
     
    # 查看"past"在source_string字符串中的位置
    print(source_string.find('past'))
     
    # 查看"love"在source_string字符串中的位置
    print(source_string.find('love'))

4
-1




字符串替换replace()方法,用以替换给定字符串中的子串,其基本使用语法如下:

 source_string.replace(old_string, new_string,[count])

其中,

  • source_string:待处理的源字符串
  • old_string:被替换的旧字符串
  • new_string:替换的新字符串
  • replace:字符串替换方法的语法关键词
  • count:表示替换旧字符串的次数,默认全部替换。
  • string = 'He said, "you have to go forward, ' \
    'Then turn left, Then go forward, and Then turn right."'
    # 指定替换两次
    new_string = string.replace("Then", "then",2)
    print(new_string)
    

    He said, "you have to go forward, then turn left, then go forward, and Then turn right."

 2).字符串的分割与拼接

split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。

str.split(sep=None, maxsplit=-1)

其中, sep:分隔符,默认为空字符。 maxsplit:分割次数,默认值为-1,                  表示不限制分割次数。
string= "Hello, my name is Wang Hong"
# 以空格作为分割符,并分割2次
print(string.split(' ', 2))

['Hello,', 'my', 'name is Wang Hong']

join()方法使用指定的字符连接字符串并生成一个新的字符串。

str.join(iterable)

其中, iterable:表示连接字符串的字符
symbol = '*'
world = 'Python'
print(symbol.join(world))

P*y*t*h*o*n

3).删除字符串的指定字符

strip()可以去除头尾指定字符

.strip()参数为空时,默认去除ss字符串中头尾\r, \t, \n, 空格等字符;参数为某个字符时,可以去掉头尾指定字符

s = 'abbmmmcccbbb'
s1 = s.strip('abc')
print(s1)

mmm

lstip()可以去除头部指定字符

s = 'abbmmmcccbbb'
s1 = s.lstrip('abc')
print(s1)

mmmcccbbb

rstip()可以去除尾部字符

s = 'abbmmmcccbbb'
s1 = s.rstrip('abc')
print(s1)

abbmmm

4).修改指定字符串的大小

upper() 它用于将字符串中的所有小写字母转换为大写字母。

str = "i like C"
print(str.upper())

I LIKE C

lower() 方法用于将字符串中的所有大写字母转换为小写字母
str = "I LIKE C"
print(str.lower())

 i like c

 title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写

str = "I LIKE C"
print(str.title())

I Like C

capitalize()方法用于将字符串的第一个字母转化为大写字母,其余小写。
str = "I LIKE C"
print(str.capitalize())

I like c

5)字符串对齐 ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。
text="我是字符串";
print(text);
print(text.ljust(20));
print(text.ljust(20,'/'));

我是字符串
我是字符串               
我是字符串///

center() 函数,居中对齐字符串

text="我是字符串";
print(text);
print(text.center(20));
print(text.center(20,"*"));

 我是字符串
       我是字符串        
*******我是字符串********

rjust() 函数,右对齐字符串
text="我是字符串";
print(text);
print(text.rjust(20));
print(text.rjust(20,'~'));

我是字符串
                               我是字符串
~~~~~~~~~~~~~~~我是字符串

上一篇:cgo


下一篇:ABAP CDS ON HANA-10