关于str的操作

一、定义

  1.简单定义

s1=' zifang 123 % 245 //$#s#@      '
print(s1)
s2=input("请输入你的名字:")
print(s2)

  2.运算(只有加字符串,乘正整数两种操作)

s3=s1+"cccc"
print(s3)
s4="hello!"*3
print(s4)
# zifang 123 % 245 //$#s#@      cccc 
# hello!hello!hello!

  3.字符串输出与索引处理

    1)打印

for i in s3:
    print(i,end='')
#不加end=''就是默认打印一次就换行

    2)切片

#[首:尾:步长],步长可以不写。
# [首:尾],但是如果尾部写了,就不会有尾部那个元素。
#切片:顾头不顾尾
s5=s1[1:5:2]      
print(s5)
s6=s1[-1::-1]     #倒置字符串
print(s6)

#返回:
#zf
#      @#s#$// 542 % 321 gnafiz 

  4.示例

#一个完整的程序
#方法一
username=input("请输入用户名:")
password=input("请输入密码")        #默认输入的都是字符串
if username == 'zs' and password == '123456':
    print("恭喜,登陆成功!")
else:
    print("用户名或密码错误")
    
#方法二
username=input("请输入用户名:")
password=int(input("请输入密码"))
if username == 'zs' and password == 123456:
    print("恭喜,登陆成功!")
else:
    print("用户名或密码错误")

  5.关于str的方法

    1)大小写

#1.大小写
s7=s3.capitalize()    #第一个字符如果是字母就大写,不是就没有任何效果
print(s7)             # zifang 123 % 245 //$#s#@      cccc
s8=s3.upper()         #全部字母大写
print(s8)             # ZIFANG 123 % 245 //$#S#@      CCCC
s9=s8.lower()         #全部字母小写
print(s9)             # zifang 123 % 245 //$#s#@      cccc
s10=s3.title()        #特殊字符后的字母大写
print(s10)            # Zifang 123 % 245 //$#S#@      Cccc
 
sw='AcDx'.swapcase()     #大小写互换
print(sw)                #aCdX

    2)打印

#2.关于打印
print(len(s1))           #打印字符串的长度(比索引大1)
s11=s10.center(40,"*")   #居中显示,长度四十,不够拿*填充
print(s11)               #** Zifang 123 % 245 //$#S#@      Cccc***
s12=s10.expandtabs()     #如果有特殊字符比如空格,制表符等就隔开,严格制表
print(s12)               # Zifang 123 % 245 //$#S#@      Cccc
sz="asfodsijc ascsdfvsrf	#"
print(sz.center(40,"&"))        #居中
print("*"*30)
print(sz.ljust(20,"@"))         #左对齐
print("*"*30)
print(sz.rjust(50,"="))         #右对齐
print("*"*30)

    3)判断

#3.判断
s13=s4[1:4]
print(s13.isdigit())       #判断是否全由数字组成
print(s13.isalpha())       #判断是否全由字母组成
print(s13.endswith('l'))   #判断是否以某字符结尾
print(s13.startswith('l')) #判断是否以某字符开头

    4)找索引

#4.索引
a=s1.find('a')     #找某字符第一个出现的位置,没有就返回-1
print(a)

b=s1.index('n')    #同样找字符出现的索引,没有就报错
print(b)

    5)删除空格

#5.删空格
s15=s1.strip()          #左右的空格都删除
print(s15,len(s15))     #zifang 123 % 245 //$#s#@ 24
s16=s1.lstrip()         #只删除左边的空格
print(s16,len(s16))     #zifang 123 % 245 //$#s#@       30
s17=s1.rstrip()         #只删除右边的空格
print(s17,len(s17))     # zifang 123 % 245 //$#s#@ 25

    6)其他

      #split   字符串转化为列表。也有删的意思

#6.其他
s18=s1.split(' ')     #以某字符作分割,字符不要,其余块作为列表元素
print(s18)            #['', 'zifang', '123', '%', '245', '//$#s#@', '', '', '', '', '', '']
c=s1.count('a')       #计算字符串中某字符出现的次数
print(c)
s19=s1.encode()      #改变编码方式,默认改为bytes类型,里面可以加参数'gbk','utf-8'等
print(type(s19))     #返回<class 'bytes'>
sz="as
fod
sijc asc
sdfvsrf	#"
sz1=sz.splitlines()             #按换行符隔开
print(sz1)
sz2=sz.split("a")               #按指定元素隔开
print(sz2)

  6.格式化输出

#格式化输出
#方法1
# %占位符
name=input("请输入你的名字:")
age=int(input("请输入你的年龄:"))

p1='我的名字是:%s,我的年龄是:%d,我的成绩是全班前5%%。对,我叫%s'%(name,age,name)
print(p1)
# %s占位表示是字符串,%d占位数字。
# 如果一个字符串里出现了占位符,那么要打印%前面必须加个%表示转义,单独打印%不需要加转义

#方法2
#使用format函数 {}
p2='我的名字是:{0},我的年龄是:{1},我的成绩是前5%,对我叫{0}'.format(name,age)
print(p2)

#方法3
#使用format函数与{}
p3='我的名字是:{name},我的年龄是:{age},对我叫{name}'.format(name=name,age=age)
print(p3)

   7.替换

sx="    asf asfdc regvdf  "
sxx=sx.replace('a',"*")         #第一个参数是原有的,第二个参数是需要替换成什么
print(sxx)                      #    *sf *sfdc regvdf  

  

原文地址:https://www.cnblogs.com/lowislucifer/p/10946454.html