Python的数据类型(一)--- 字符串

字符串


1、创建字符串很简单,就是将字符串字面量用单引号 'a' 或双引号 "a" 或三引号 """a""" '''a''' 引起来 

a = 'Hello World'b = "I'm Jeremy"
c = '''<a href="http://www.csdn.com">CSDN</a>'''
d = """You can say: 'Hello World!'"""

2、Python提供了非常完善的字符表达功能,尽可能的减少了在字符串本身浪费时间。如果真的遇到解决不了的字符,那就使用转义符"\"

i = 'I\'m Jeremy'

3、字符串存储在一个字符序列,这个字符序列使用整数作为索引,从0开始,可以取值,使用索引运算符 s[i],也可以进行迭代操作,每次取出一个字符。

a = 'Hello World'
x = a[4]   # x = 'o'

4、提取一个子字符串,可以使用切片操作

字符串[(开始索引b):(结束索引e)(:(步长s))]

        s= 'ABCDE'
        a = s[1:4]     #a ='BCD'
        a = s[:4]      #a ='ABCD'
        a = s[1:]      #a ='BCDE'
        a = s[:]       #a ='ABCDE'
        a = s[3:3]     #a =''
        a = s[4:2]     #a =''
        a = s[0:5:2]   #a = 'ACE' # 可以越界
        a = s[3::-1]   #a ='DCBA'
        a = s[-2::-2]  #a = 'DB'
        a = s[::-2]    #a = 'ECA'

5、字符串支持运算符操作

+    # 拼接字符串
+=   # 拼接字符串并赋值给变量
*    # 与整数相乘,得到重复字符串
*=   # 与整数相乘,得到重复字符串,并赋值给变量

# 下面比较运算符,从左往右依次比较字符编码
>   >=   <  <=   ==   !=  

# 用于判断某个值是否存在于容器中
in   not in

6、字符串常用函数

len(s)   # 返回序列的长度
max(s)   # 返回序列的最大值元素
min(s)   # 返回序列的最小值元素

7、转义字符

\'   # 代表一个单引号
\"   # 代表一个双引号
\n   # 代表换行
\\   # 代表一个反斜杠
\r   # 返回光标至行首
\f   # 换页
\t   # 水平制表符
\v   # 垂直制表符
\b   # 倒退
\a   # 响铃
\0   # 空字符(字符值为零)
\xXX # 十六进制值
\uXXXX   # Unicode 16的十六进制值
\UXXXXXXXX    # Unicode32的十六进制值

8、字符串的连接

  • 加号:将两个字符串直接拼接
print('Python' + 'Tab')   # PythonTab
  • 逗号:将两个字符串用空格拼接
print('Python', 'Tab')   # Python Tab
  • 直接连接:效果同加号(中间有无空格不影响结果)
print('Python' 'Tab')   # PythonTab
  • join函数:技巧型操作,这个函数接受一个列表,然后用字符串依次连接列表中每一个元素
str_list = ['Python', 'Tab']
a = '-'
print (a.join(str_list))   # Python-Tab

9、格式化字符串

  • 利用%运算符完成格式化操作
fmt = "name: %s, age: %d"
n = "Jeremy"
a = 20
print(fmt % (n, a))   # name: Jeremy, age: 20

此格式化语法:

    %[-+0宽度.精度]x

    -:左对齐(默认右对齐)
    +:显示正负号(默认正,不用写)
    0:空格补零

    示例:

    "%10d" % 123     # '       123'
    "%-10d" % 123    # '123       '
    '%010d" % 123    # '0000000123'
    "%+10d" % 123    # '      +123'
    "%7.2f" % 3.1415926    # '    3.14'

格式化字符串中的占位符和类型码:

s : 获取传入对象的__str__方法的返回值,并将其格式化到指定位置

r : 获取传入对象的__repr__方法的返回值,并将其格式化到指定位置

c : 整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <=1114111(py27则只支持0-255);字符:将字符添加到指定位置

o : 将整数转换成 八  进制表示,并将其格式化到指定位置

x : 将整数转换成十六进制表示,并将其格式化到指定位置

d : 将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置

e : 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)

E : 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)

f :  将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

F : 同上

g : 自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)

G : 自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)

% : 当字符串中存在格式化标志时,需要用 %%表示一个百分号;


  • 利用format函数进行格式化操作

该方法接受位置参数和关键字参数的任意集合,并使用它们的值来替换字符串中嵌入的占位符。

r = "{0} {1} {2}".format("Good", 100, 3.14)   # Good 100 3.14
r = "name:{name}, age:{age}".format(name="Jeremy", age=20)   # name:Jeremy, age:20
r = "{} {}".format("Good", 100)   # Good 100

同样的,format函数提供了更加强大的格式操作,方法是用一个冒号给每个占位符添加可选的格式说明符:

           {place:format}

          说明符的格式:[[fill[align]][sign][0][width][.precision][type]]

                    fill:可选填充字符,用于填充空白

                    width:说明符指定要是用的最小字段宽度

                    align:说明符的值可取< > ^,分别代表左对齐、右对齐、居中对齐

                    sign:正负号

                    precision:小数位

                    type:数据类型

使用这种说明符可以指定列宽、小数位和对齐方式等

r = "{good:10} {price:8.2f}".format(good="mongo", price=29.9)   # mongo 29.90
r = "{0:=^10}".format("Jeremy")   # ==Jeremy==
r = '{0:a^+10.2f}'.format(3.1415)   # aa+3.14aaa

  • f"xxx"格式化字符串(Python3.6新功能)

那天大概看了一下新版本的新增内容,其中有一个增加了格式化的方法,相比之前的更加简便快捷,直接在字符串中引用变量名即可。

语法:f"xxx{变量名}xxx" 

name = "Jeremy"
s = f"My name is {name}"
print(s)   # My name is Jeremy
这样的写法更加类似Django中的网页提取变量,更加灵活直观。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值