Python 字符类型


Python 字符类型

一、字符串

  • 定义:a = 'Python'  a = '123'  a = "Python"  a = """123"""  a = '''Python'''
    • 单引、双引和三引对字符串来说并无区别。其中含特殊意义的并未做转换,如果需要将引号中数据正常输出直接在前边加r

   如下:

     print("a\nb")  输出:a 和 b(注意:此处是换行了的)

     print(r"a\nb")  输出:a\nb (注意:r表示不进行转义)

     print('i'm Python') 报错.原因:程序走到第二个'就当结束了。m会当成变量,但是这里并非变量,所以报错。正确写法如下:

     print("i'm Python")  只要含字母的都需要加引号。否则会报错。

  • 字符串内置方法 
#定义变量
msg = "i'm YHL"
 
    capitalize()           注解:首字母大写. 如:已经大写还是大写 其他大写变成小写
print (msg.capitalize())   
输出:I'm yhl
 
  lower()                 注解:将大写字母转成小写
print(msg.lower())         
输出:i'm yhl
 
  upper()                 注解:将所有小写转成大写
print(msg.upper())         
输出:I'M YHL
 
  center(长度,填充的值)     注解:定义长度.让其变量中字符串剧中显示
print (msg.center(20))     
输出:      i'm YHL       :
print (msg.center(20,"*")) 
输出:******i'm YHL*******
 
  count("值")              注解:统计某一字符串出现的次数
print (msg.count("Y"))     
输出:1
print (msg.count("Y",0,3)) 
输出:0     PS:从下标开始找. 下标0-3之间找Y出现过几次.  注意:顾头不顾尾.这里是0-3实际是0-2
print (msg.count("Y",0,-1))
输出:0     PS:从下标开始找. 下标0--1之间找Y出现过几次. 注意:此处的-1表示最后
print (msg.count("Y",3))   
输出:1     PS:从下标开始找. 下标3之后开始找Y出现过几次.
 
  endswith("值")            注解:判断以什么结尾.真返回True  否则返回Fales
print (msg.endswith("d"))  
输出:False PS:意思是以什么结尾.如果是返回True 否则返回False  
 
=====================================================================================================================
#定义变量    PS:变量中的\t表示空格.默认是一个tab键
msg1 = "a\tb"
 
  xpandtabs()                注解:设置空格大小.默认是八个空格.意思就是说括号中不写数字
print(msg1.expandtabs(10))
输出:设置a and b之间的空格大小.
 
  find("值")                 注解:查找字符下标或坐标.注意:\t默认占1位.键盘上空格敲1下占1位.敲2下占2位.以此类推.一个tab键就占1位
print(msg1.find("b"))
输出:2    PS:空格也算.  注意:如果找不到会返回-1
print(msg1.find("b",0,8))            
输出:2    PS:如果字符串中出现多个只回显第一个的下标.还有就是这样写是规定一个范围
 
  format("值","值")           注解:格式化字符串
print("{0}{1}{0}".format("name","age"))  
输出:nameagename  ps:{0}-name{1}-age{0}-name 注意:相当于是下标一一对应
print("{name}".format(name="YHL"))     
输出:YHL      ps:相当于打印变量name对应的值.
print("{}{}{}".format("name","age","YHL")) 
输出:nameageYHL   ps:前边中括号有几个后台值就必须有几个.否则会报错. 注意括号不能多.值可以多
 
  index("值")                  注解:查找索引
print(msg1.index("a"))            
输出:1              PS:如果一个变量中出现多个相同的字母.那么也只返回第一个
  PS:find 和 index 都是查找下标.
  两个的区别在于:
    find:是不知道有没有.是去找. 如果有正常返回.如果没有返回-1
    index:是知道有.通过已知的去找对应的下标.  如果有正常返回.如果没有直接报错
 
=====================================================================================================================
#定义变量   
msg2 = "a123"
 
  isalnum()                    注解:判断变量是否由数字和字母组成.是返回True.否则返回False  纯数字和纯字母都可以.不能是数字和字母之外的
print(msg2.isalnum())      
输出:True
 
  isalpha()                    注解:是字母返回True  否则返回False. 必须全是字母
print(msg2.isalpha())      
输出:False
 
=====================================================================================================================
#定义变量
msg3 = "10"
 
  isdecilmal()                 注解:判断是否是十进制数. 是返回True 否则返回False   注意:只能是数字.
print(msg3.isdecimal())    
输出:True     PS:如果是10.2则会报错.
 
  isdigit()                    注解:判断是不是整型    注意:只能整数.
print(msg3.isdigit())      
输出:True
 
=====================================================================================================================
#定义变量
msg4 = "if"
 
  isidentifier()               注解:判断字符串中是否存在关键字. 是返回True 否则返回False
print(msg4.isidentifier()) 
输出:True     PS:如果是ifa的话就直接返回True  一定要清楚是关键字.(包含)
 
  islower()                    注解:判断字符串是否为小写. 是返回True 否则返回False
print(msg4.islower())      
输出:True     PS:必须全都是小写. 否则返回False
 
  isupper()                    注解:判断字符串是否为大写. 是返回True 否则返回False
print(msg4.isupper())      
输出:False    PS:必须全都是大写. 否则返回False
 
=====================================================================================================================
#定义变量
msg5 = " "
 
  isspace()                    注解:判断是否为空格.是空格返回True 否则返回False. 注意:\t也是空格. tab  \n  敲键盘空格一样
print(msg5.isspace())      
输出:True     PS:不能有其他的.必须全是空格
 
=====================================================================================================================
#定义变量
msg6 = "Hello Word"
 
  istitle()                     注解:判断抬头.  就是首字母是不是大写.是就返回True.  否则返回False.
print(msg6.istitle())      
输出:True     PS:是单词的首字母.如果单词中还有别的是大写也是False
 
=====================================================================================================================
#定义变量
msg7 = "Yhl"
 
  ljust(值,"*")                  注解:左对齐.
print(msg7.ljust(10,"*"))  
输出:Yhl*******   PS:左对齐,缺少的部分用*填充.长度是10
print(msg7.ljust(10))      
输出:Yhl          PS:左对齐,缺少的部分用空格填充.长度是10
 
  ljust(值,"*")                  注解:右对齐.
print(msg7.rjust(10,"*"))  
输出:*******Yhl   PS:右对齐,缺少的部分用*填充.长度是10
print(msg7.rjust(10))      
输出:       Yhl   PS:右对齐,缺少的部分用空格填充.长度是10
 
=====================================================================================================================
#定义变量
msg8 = "  abcd  "
 
  strip()                        注解:去掉空格(前后都去). 如果:"  SA  SAS"那么中间的空格无法去除
print(msg8.strip())        
输出:abcd
 
  lstrip()                       注解:只去掉左边的空格.右边的不去掉
print(msg8.lstrip())       
输出:abcd  "
 
  rstrip()                       注解:只去掉右边的空格.左边的不去掉
print(msg8.rstrip())       
输出:  abcd
 
  maketrans("值","值")             注解:制作翻译表.下边是用法.   长度必须是一一对应否则会报错.
msg9 = "my name is abcd"
table = str.maketrans("a","2")
print(msg9.translate(table))
输出:my n2me is 2bcd
 
=====================================================================================================================
#定义变量
msg10 = "abcdefg"
 
  zfill(10)                       注解:右对齐.左边不够的用0填充
print(msg10.zfill(10))
输出:000abcdefg
 
python 字符串相关方法
  • 字符串常用操作
1.移除空白
    msg01 = "   dsadasi21 \n  "
    print(msg01.strip())       
    输出:dsadasi21
     
2.分割
    msg02 = "www.baidu.com"
    print(msg02.split("i"))
    输出:['www.ba', 'du.com']    PS:以i为点进行分割.
     
    print(msg02.split(".",1))
    输出:['www', 'baidu.com']    PS:以.进行分割1次.
     
    print(msg02.split(".",2))
    输出:['www', 'baidu', 'com'] PS:以.进行分割2次. 注意:如果.在字符串中不够分的次数.那么不会报错.按最多分
     
    print(msg02.split(".")[0])
    输出:www                     PS:以.进行分割.并打印出下标为0的数据
     
    print(msg02.split(".")[-1])
    输出:com                     PS:以.进行分割.并打印出最后一个数据
     
    print(msg02.split(".")[0:2])
    输出:['www', 'baidu']        PS:以.进行分割.并打印出下标是0,1的数据
     
3.长度
    msg03 = "www.baidu.com"
    print(len(msg02))
    输出:13       PS:计算字符串长度 
     
4.索引(和切片很像)
    msg04="welcometobeijingYhl"
    print(msg04[2])
    输出:l        PS:通过索引获取字符串中对应的值
    print(msg04.index("o"))
    输出:4        PS:通过字符串中的值找对应的下标(索引)
 
5.切片
    msg04="welcometobeijingYhl"
    print(msg04[0:3])
    输出:wel
     
    print(msg04[0:])
    输出:welcometobeijingYhl
     
    print(msg04[0:-1])
    输出:welcometobeijingYh
     
    print(msg04[:])
    输出:welcometobeijingYhl
     
    print(msg04[2])
    输出:l                        PS:通过索引取对应的值
     
    print(msg04[2:7:2])
    输出:loe                      PS:步长. 各几个取几次.   
  • 转义字符

    下表是一个逃跑或反斜线符号可以代表的非打印字符的清单。

注:在doublequoted字符串,转义字符被解释;在singlequoted字符串,转义字符被保留。

反斜线 符号 十六进制字符 描述
\a 0x07 Bell or alert
\b 0x08 Backspace
\cx   Control-x
\C-x   Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x   Meta-Control-x
\n 0x0a Newline
\nnn   Octal notation, where n is in the range 0.7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab
\x   Character x
\xnn   Hexadecimal notation, where n is in the range 0.9, a.f, or A.F
  • 字符串运算符

  假设A持有'hello'和变量b拥有'Python'的字符串变量:

操作符 描述 例子
+ 串联 - 添加操作两边的值 a + b 将得到 HelloPython
* 重复 - 创建新的字符串,相同的字符串连接的多个副本 a*2 将得到 -HelloHello
[] 切片 - 从给定的索引字符 a[1] will give e
[:]     范围切片 - 从给定范围内的字符 a[1:4] will give ell
in 成员关系 - 返回true,如果存在一个字符在给定的字符串 H in a will give 1
not in 成员关系 - 返回true,如果不存在一个字符在给定的字符串 M not in a will give 1
r/R 原始字符串 - 禁止转义字符的实际意义。必须放在紧接第一个引号。正常输出

print r'\n' 

prints \n

print R'\n'

prints \n

% 格式化 - 执行字符串格式 See at next section

  万恶的字符串拼接:

    pythom中的字符串在C语言中体现为师一个字符数组,每次创建字符串的时候需要在内存中开辟一块连续的空间,并且一旦修改字符串的话,就需要在次开辟一块新的连续空间,万恶的加号(+)每出现一次,就会在内存中重新开辟一块新的空间。

  • 下面是一套完整的符号可用%的列表:
符号 转换含义 符号  转换含义
%c character %X hexadecimal integer (UPPERcase letters)
%s string conversion via str() prior to formatting %e exponential notation (with lowercase 'e')
%i signed decimal integer %E exponential notation (with UPPERcase 'E')
%d signed decimal integer %f floating point real number
%u unsigned decimal integer %g the shorter of %f and %e
%o octal integer %G the shorter of %f and %E
%x    hexadecimal integer (lowercase letters)            
  • 其他支持的符号和功能下表中列出:
符号 功能
* argument specifies width or precision
-     left justification
+ display the sign
  leave a blank space before a positive number
# add the octal leading zero ( '0' ) or hexadecimal leading '0x' or '0X', depending on whether 'x' or 'X' were used.
0 pad from left with zeros (instead of spaces)
% '%%' leaves you with a single literal '%'
(var) mapping variable (dictionary arguments)
m.n. m is the minimum total width and n is the number of digits to display after the decimal point (if appl.)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM