python学习记录 — (5)字符串

String.py

#coding=utf-8

#################################### Python字符串表示方式 ####################################

## 单引号
str = 'hello'

## 双引号
str = "hello"

### 三引号
str = """
hello
baby
"""

#################################### 转义字符 ####################################

'''
\a响铃   \b退格    \f换页    \n换行    \r回车    \t水平制表符(下一个TAB位置)
\v水平制表符     \\代表一个反斜线字符     \'代表单引号字符   \"代表双引号字符   \000空字符(null)
\oyy八进制数代表的字符(\o12表示换行)     \ xyy十六进制数表示的字符(\x0a表示换行)
\e转意    \other 其他的字符以普通格式输出
'''

#################################### 字符串操作(string库) ####################################

## capitalize(self) 把字符串的第一个字符大写,并返回
str = "a,Bcd,E,f"
print(str.capitalize())                                             # A,bcd,e,f
## title() 返回"标题化"的string(即所有单词都是以大写开始)
## lower() 将string中所有字符转化为小写
## upper() 将string中所有字符转化为大写
## swapcase() 翻转string中的大小写

## center(self,width,fillchar)返回原字符串居中,并使用空格填充至长度width的新字符
str = "abc"
print(str.center(10))                                               #    abc
print(str.center(10,"o"))                                           # oooabcoooo
## ljust(width[, fillchar]) 返回一个左对齐的新字符串,width宽度,fillchar填充字符默认空格
## rjust(width) 返回一个右对齐的新字符串,width宽度,fill char填充字符默认空格
str = "python"
print(str.ljust(10,'-'))                                            # python----
## zfill(width) 根据一定长度,使字符串右对齐,前面填充0

## count(str,beg=0,end=len(string)) 返回str在string里出现的次数
str = "python lua c++ lua"
print(str.count("lua"))                                             # 2

## decode(encoding='UTF-8',errors='stric') 以encoding指定的编码格式解码string
## encode(encoding='UTF-8',errors='stric') 以encoding指定的编码格式解码string
str = "你好nihao"
print(str.decode("UTF-8"))
str = " nihao"
print(str.encode("UTF-8"))

## endswith(obj, beg=0, end=len(string)) 检查字符串是否以 obj 结束
## startswith(obj, beg=0,end=len(string)) 检查字符串是否是以 obj 开头

## expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格
## replace(old, new,  count=string.count(str1)) 替换string中指定的字符串
str = "a,b,c,a,b,c,a,b,c,a"
print(str.replace("a,","$",2))                                      # $b,c,$b,c,a,b,c,a
## maketrans(intab, outtab) 创建字符映射的转换表
## translate(str, del="") 根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到del中
from string  import maketrans
intab = "abc"
outtab = "123"
trantab = maketrans(intab, outtab)
str = "i am a crazy boy"
print(str.translate(trantab))                                       # i 1m 1 3r1zy 2oy

## find(str, beg=0, end=len(string)) 检测 str 是否包含在 string 中
## rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找
## index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在 string中会报一个异常
## rindex( str, beg=0,end=len(string)) 类似于 index(),不过是从右边开始

## format() 格式化字符串
print("my name is{name},and {age} years old".format(name = "beijiaan",age =  25))   # my name isbeijiaan,and 25 years old
dic = {"name":"beijiaan","age":25}
print("my name is{name},and {age} years old".format(**dic))         # my name isbeijiaan,and 25 years old
lst = ["beijiaan",25]
print("my name is{0[0]},and {0[1]} years old".format(lst))          # my name isbeijiaan,and 25 years old

## isalpha() 是否所有字符都是字母或数字
## isalpha() 是否所有字符都是字母
## isdecimal()是否只包含十进制数字
## isdigit() 是否只包含数字
## isnumeric() 是否只包含数字字符
## islower() 是否所有(区分大小写的)字符都是小写
## isupper() 是否所有(区分大小写的)字符都是大写
## isspace() 是否只包含空格
## istitle() 是否是标题化的(见 title())

## join(seq) 以string作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
str = "-"
seq = ("a", "b", "c")
print str.join( seq )                                               # a-b-c

## lstrip() 截掉 string 左边的空格
## rstrip() 截掉 string 右边的空格
## strip([obj]) 在string上执行lstrip()和rstrip()
str = "  嘿嘿"
print(str.lstrip())                                                 # 嘿嘿
str = "0000嘿嘿"
print(str.lstrip("0"))                                              # 嘿嘿

## max(str) 获取字符串 str 中最大的字母
## min(str) 返回字符串 str 中最小的字母
print(max("hello"))                                                 # o
print(min("hello"))                                                 # e

## join(seq) 根据指定的分隔符将字符串进行分割
## rpartition(str) 类似于 partition()函数,不过是从右边开始查找
str = "abc:123:efg:456"
print(str.partition(":"))                                           # ('abc', ':', '123:efg:456')

## split(str="", num=string.count(str)) 以str为分隔符切片string(分隔num个子字符串)
## splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表
str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines()                                             # ['ab c', '', 'de fg', 'kl']
str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)                                         # ['ab c\n', '\n', 'de fg\r', 'kl\r\n']


#################################### 字符串格式化 ####################################

## %c 接收数字,转化为ASCII码对应的字符
print "%c"%(101)                                                    ## e
## %d %i 接收数字,转化为有符号的整数格式
print "%d %i"%(33.33,-33.33)                                        ## 33 -33
## %u 接收数字,转化为无符号的整数格式
print "%u"%(-33.33)                                                 ## -33
## %e %E 接收数字,转化为科学计数法格式
print "%e %E"%(-33.33,-33.33)                                       ## -3.333000e+01 -3.333000E+01
## %f 接收数字,转化为浮点数格式
print "%f"%(-33.33)                                                 ## -33.330000
## %g %G 接收一个数字,转化为%e(%E,对应%G)及%f中较短的一种格式
print "%g"%(-33.33)                                                 ## -33.33
print "%g %G"%(-3333333.33,-3333333.33)                             ## -3.33333e+06 -3.33333E+06
## %s 接收一个字符串
print "%s"%("-3333.3333")                                           ## -3333.3333
## %o 接收一个数字,转化为八进制格式
print "%o"%(20)                                                     ## 24
## %x %X 接收一个数字,转化为十六进制格式
print "%x %X"%(30,30)                                               ## 1e 1E

#### 细化格式
## 符号:加一个+号,将让正数显示正号
print "%+f"%(33.33)                                                 ## +33.330000
## 占位符+宽度数值:(在宽度前加0,则用0占位,否则默认用空格)
print "%10s"%("hello")                                              ##      hello
print "%010s"%("hello")                                             ##      hello
print "%10g"%(33.3)                                                 ##       33.3
print "%010d"%(33.3)                                                ## 0000000033
print "%010f"%(33.3)                                                ## 033.300000
## 对齐标识:在指定了占位宽度时,加-号可以改为左对齐
print "%-10s|"%("hello")                                            ## hello     |
print "%-010s|"%("hello")                                           ## hello     |
print "%-10g|"%(33.3)                                               ## 33.3      |
print "%-010d|"%(33.3)                                              ## 33        |
print "%-010f|"%(33.3)                                              ## 33.300000 |
## 小数位数/字符串裁切:
print "%.5s"%("abcdefghijk")                                        ## abcde
print "%8.5s"%("abcdef")                                            ##    abcde
print "%.5f"%(33.12345678)                                          ## 33.12346
print "%010.5f"%(33.33333)                                          ## 0033.33333
print "%10.5g"%(33.33333)                                           ##     33.333

#################################### 字符串运算符 ####################################

#### 字符串连接符:+
print "abc" + "123"                                                 ## abc123

#### 重复输出符:*
print "abc|"*3                                                      ## abc|abc|abc|

#### 字符串索引符与截取符:[],[:]
print "abcdefg"[3]                                                  ## d
print "abcdefg"[2:5]                                                ## cde

#### 成员运算符:(not)in
print 'c' in "abcdefg"                                              ## True
print "z" not in "abcdefg"                                          ## True

#### 原始字符串: r/R
print r"\n ABC \t ABC"                                              ## \n ABC \t ABC
print "\n ABC \t ABC"                                               ## / ABC     ABC

#### 字符串格式符: %
print "%f"%(3.3)                                                    ## 3.300000

#### Unicode字符串:u
print(type(u"hello"))                                               ## <type 'unicode'>
print(type("hello"))                                                ## <type 'str'>
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值