一、字符串:string
 


定义:
     1、单引:''
     2、双引:"" 可以包含单引
     多行字符串,所见即所得模式,用三个引号。
     3、三个单引:'''  '''
     4、三个双引:""" """ 可以包含单引号

str="""我是所见即所得模式
我需要顶格写
特殊字符不用转义:~!@#$%^&*()''"/,.    table:  ,空格: .
"""
print(str)

     5、转义符\:
      单引下,使用特殊字符要使用转义符,常用的转义

\' 单引号  
\" 双引号
\n 换行
\r 回车 
\v 纵向制表符 
\t 横向制表符
%% 输出单个%, r'字符' 取消转义



 运算和读取:
     1、字符串读取
     str[开始位置:结束位置:步进] 三个都是可选的
     [:] [::] 显示所有内容
     [n:m]  显示从n开始,数m-n个字符
     2、字符串运算

 + 连接两个字符  
 *n 重复n次
 a in b  字符串b 包含 a

 a not in b 字符创b 不包含 a

     3、格式化读取字符串变量
     '%s',%(str)

     '%r' 忽略后面参数类型。


     print ('%num1.num2s'%('counter')) 

     # num1指定字符占用的字节数,右对齐
     # num2指定显示的字符位数。

     # s指定参数类型是字符串。

     例子:

print ('%.3s'%('counter'))  # 3,显示的字符个数

print ('%10.3s'%('counter')) # 10,字符占用的位数

print ('%*.*s'%(6,5,'counter')) # *,在参数中指定数值

print ('%*.5s'%(4,'counter')) # 数字和*混合使用。
# 结果显示:
counter

       cou

 count

count

    %d,数字格式化符号

    %f ,浮点数格式化符号,可以指定整数位和小数位,用法和string一样

    %x,输出16进制整数

    %o,输出8进制整数


 常用字符串函数

 capitalize()
 center()\ljust()\rjust()
 count(str,开始位置,结束位置)
 find(str,开始位置,结束位置)
 rfind(str,开始位置,结束位置)
 isalnum()
 isdigit()
 len(string)
 lower()\upper()
 strip()\rstrip()\lstrip()
 max()\min()
 replace(原来的字符,新字符,替换次数)
 split(分割符,分割次数)
 splitlines(keepends)


 



重要!

str.maketrans(keys_str,values_str):

 把两个字符串生成对应的ASCII字典,生成的字典可以作为translate方法table参数使用


 keys_str:字符串

 values_str:字符串

 keys_str与values_str字符数必须相等;如果keys_str存在相同的字符,生成的字典取最后一个字符对应的value值。

keys_str = 'abcc'
values_str = '0123'
asc_dict = str.maketrans(keys_str, values_str)
print (asc_dict)
# 结果:
{97:49, 98:50, 99:52}        # 存在两个C,只取最后一个,所以对应的2(51)的值被3(52)取代。



 translate(table):

 table声明一个ASCII码字典,根据字典的映射关系,把字符串中的字符替换成字典的值。


 table是一个字符Ascii对应的字典,KEY是元音的ASCII码,对应的Value是数字的ASCII码,比如:


  {97: 49, 111: 52, 117: 53, 101: 50, 105: 51}


 通过下面这个例子,就能根据字典KEY,把元音的字符转变成对应的VALUE:

# 一、把元音转换成数字
intab = "aeiou   hgfmn   aeoui"
outtab = {97: 49, 111: 52, 117: 53, 101: 50, 105: 51}    # 定义转换字典
d=intab.translate(outtab)
print(d)

# 结果:
12345   hgfmn   124453


# 二、使用maketrans()作为参数。
trans_table = str.maketrans('aeiou','12345')
d = intab.tranlate(trans_table)
print(d)
# 结果是一样的。。。。