我的git代码仓库: [https://code.aliyun.com/whjwnavy] or [https://github.com/WHJWNAVY]

Python学习:Python字符串

设计语言 WHJWNAVY 259℃ 0评论

#Python字符串运算符

################################################################################

下表实例变量a值为字符串 "Hello",b变量值为 "Python":

操作符

描述

实例

+

字符串连接

a + b 输出结果: HelloPython

*

重复输出字符串

a*2 输出结果:HelloHello

[]

通过索引获取字符串中字符

a[1] 输出结果 e

[ : ]

截取字符串中的一部分

a[1:4] 输出结果 ell

in

成员运算符 - 如果字符串中包含给定的字符返回 True

H in a 输出结果 1

not in

成员运算符 - 如果字符串中不包含给定的字符返回 True

M not in a 输出结果 1

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

print r'\n' prints \n 和 print R'\n' prints \n

%

格式字符串

请看下一节内容。

 
 

#实例

#!/usr/bin/python3

 
 

a = "Hello"

b = "Python"

 
 

print("a + b 输出结果:", a + b)

print("a * 2 输出结果:", a * 2)

print("a[1] 输出结果:", a[1])

print("a[1:4] 输出结果:", a[1:4])

 
 

if"H" in a) :

    print("H 在变量 ")

else :

    print("H 不在变量 ")

 
 

if"M" not in a) :

    print("M 不在变量 ")

else :

    print("M 在变量 ")

 
 

print (r'\n')

print (R'\n')

 
 

以上实例输出结果为:

 
 

# a + b 输出结果: HelloPython

# a * 2 输出结果: HelloHello

# a[1] 输出结果: e

# a[1:4] 输出结果: ell

# H 在变量 

# M 不在变量 

# \n

# \n

 
 

 
 

 
 

Python字符串格式化(%方式)

################################################################################

python字符串格式化符号:

符号

描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

<sp>

在正数前面显示空格

#

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0

显示的数字前面填充'0'而不是默认的空格

%

'%%'输出一个单一的'%'

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

 
 

 
 

Python字符串格式化(str.format()方式)

################################################################################

#语法

#它通过{}:来代替%

 
 

#"映射"示例

#通过位置

# In [1]: '{0},{1}'.format('kzc',18)  

# Out[1]: 'kzc,18'  

# In [2]: '{},{}'.format('kzc',18)  

# Out[2]: 'kzc,18'  

# In [3]: '{1},{0},{1}'.format('kzc',18)  

# Out[3]: '18,kzc,18'

 
 

#字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不

#2.6不能为空{}2.7才可以。

 
 

#通过关键字参数

In [5]: '{name},{age}'.format(age=18,name='kzc')  

# Out[5]: 'kzc,18'

 
 

#通过对象属性

class Person:  

    def __init__(self,name,age):  

        self.name,self.age = name,age  

        def __str__(self):  

            return 'This guy is {self.name},is {self.age} old'.format(self=self)  

 
 

# In [2]: str(Person('kzc',18))  

# Out[2]: 'This guy is kzc,is 18 old'

 
 

#通过下标

# In [7]: p=['kzc',18]

# In [8]: '{0[0]},{0[1]}'.format(p)

# Out[8]: 'kzc,18'

 
 

#有了这些便捷的"映射"方式,我们就有了偷懒利器。基本的Python知识告诉我们,list

#tuple可以通过"打散"成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*

#。所以可以轻松的传个list/tuple/dictformat函数。非常灵活。

 
 

#格式限定符

#它有着丰富的的"格式限定符"(语法是{}中带:号),比如:

 
 

#填充与对齐

#填充常跟对齐一起使用

#^<>分别是居中、左对齐、右对齐,后面带宽度

#:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

#比如

 
 

# In [15]: '{:>8}'.format('189')

# Out[15]: '     189'

# In [16]: '{:0>8}'.format('189')

# Out[16]: '00000189'

# In [17]: '{:a>8}'.format('189')

# Out[17]: 'aaaaa189'

 
 

#精度与类型f

#精度常跟类型f一起使用

 
 

# In [44]: '{:.2f}'.format(321.33345)

# Out[44]: '321.33'

 
 

#其中.2表示长度为2的精度,f表示float类型。

 
 

#其他类型

#主要就是进制了,bdox分别是二进制、十进制、八进制、十六进制。

 
 

# In [54]: '{:b}'.format(17)

# Out[54]: '10001'

# In [55]: '{:d}'.format(17)

# Out[55]: '17'

# In [56]: '{:o}'.format(17)

# Out[56]: '21'

# In [57]: '{:x}'.format(17)

# Out[57]: '11'

 
 

#用,号还能用来做金额的千位分隔符。

# In [47]: '{:,}'.format(1234567890)

# Out[47]: '1,234,567,890'

转载请注明:胡椒小兄弟 » Python学习:Python字符串

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情 签到