字符串

1:截取字符串。

2:Python转义字符

3:Python字符串运算符

4:Python字符串格式化

5:数字格式化

6:Python三引号

 

 

一截取字符串。

1 var1 = "abcdef"
2 var2 =  var1[1]   #取字符串var1  索引为1的 字符
3 var3 =  var1[1:6]  #取字符串var1  索引1-6的字符  不包括6  (即取1-5的字符)
4 
5 
6 print(var2)
7 print(var3)

运行结果如下:

b
bcdef

二:Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:

转义字符描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三: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' )
print( R'\n' )
% 格式字符串 请看下一节内容。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Azning
a = "Hello"
b = "Python"

print("a + b 输出结果:", a + b)  #拼接a和b
print("a * 2 输出结果:", a * 2)  #打印两次a
print("a[1] 输出结果:", a[1])   #取a索引为1的字符
print("a[1:4] 输出结果:", a[1:4]) #取索引为1-4(不包括4)的字符

if ("H" in a):  #如果"H"在a中  
    print("H 在变量 a 中")
else:
    print("H 不在变量 a 中")

if ("M" not in a):
    print("M 不在变量 a 中")
else:
    print("M 在变量 a 中")

print(r'\n')  #“”前加"R"表示原始字符串
print(R'\n')

运行结果如下:

a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
\n
\n

 

四:Python字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Azning

name = "Azning"
age = 18
sex = "man"

print("my name is %s,age %s,sex %s"% (name,age,sex))   
my name is Azning,age 18,sex man

python字符串格式化符号:

 符   号描述
      %c  格式化字符及其ASCII码
      %s  格式化字符串
      %d  格式化整数
      %u  格式化无符号整型
      %o  格式化无符号八进制数
      %x  格式化无符号十六进制数
      %X  格式化无符号十六进制数(大写)
      %f  格式化浮点数字,可指定小数点后的精度
      %e  用科学计数法格式化浮点数
      %E  作用同%e,用科学计数法格式化浮点数
      %g  %f和%e的简写
      %G  %f 和 %E 的简写
      %p  用十六进制数格式化变量的地址

 

 

 

 

 

 

 

 

 

 

 

 

 

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

实例如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Azning

name = "Azning"
age = 18
sex = "male"
#一:位置方式传递
print("{},{}".format(name,age))      #不指定位置,按默认顺序,{} 和 : 来代替以前的 %   相当于 print("%s  %s" %(name,age)),
print("{1},{0},{2},{0}".format(name,age,sex))  #用format的索引来指定位置



#二:用 **字典  方式
infomation_dic = {"name":name,"age":age,"sex":sex}  #定义一个信息字典
print("姓名:{name},年龄:{age}".format(**infomation_dic))   #将字典以“**”方式解包,

print("姓名:{name},年龄:{age}".format(name="Azning",age=18,sex="male")) #  相当于上面的例子  用**解包后的结果

#三:列表方式
infomation_list = ["Azning",18]
infomation_list2 = ["male","成都"]

#format(list)  列表方法,格式诠释:{ format括号里的列表索引 [format()里的列表索引的内容内的索引] }
print("姓名:{0[0]},年龄:{0[1]}".format(infomation_list))

#因为format括号里有两个列表 ,所以第一个列表的索引就是0  第二个列表的索引就是1 ,所以{0[1]}意思就是取format括号里第一个列表里的索引为1的内容
print("姓名:{0[0]},年龄:{0[1]}  性别:{1[0]},地址:{1[1]}".format(infomation_list,infomation_list2))

#四:传对像

class Foo:
    def __init__(self,a,b):
        self.a = a
        self.b = b
f1 = Foo(1,2)    #实例一个Foo对像

print("a = {0.a}".format(f1))    #诠释{0.a} format内索引为0的对像f1下的数量变量a

运行结果如下:

Azning,18
18,Azning,male,Azning
姓名:Azning,年龄:18
姓名:Azning,年龄:18
姓名:Azning,年龄:18
姓名:Azning,年龄:18  性别:male,地址:成都
a = 1

 

五:数字格式化

下表展示了 str.format() 格式化数字的多种方法:

>>> print("{:.2f}".format(3.1415926));
3.14
数字格式输出描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:10d}         13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d}     13 中间对齐 (宽度为10)
11
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
进制

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

此外我们可以使用大括号 {} 来转义大括号,如下实例:

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Azning

print ("{} 对应的位置是 {{0}}".format("runoob"))

运行结果如下:

runoob 对应的位置是 {0}

 

 

 

 

 

 

六:Python三引号

ython三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Azning
 4 
 5 para_str = """这是一个多行字符串的实例
 6 多行字符串可以使用制表符
 7 TAB ( \t )。
 8 也可以使用换行符 [ \n ]。
 9 """
10 print (para_str)
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (      )。
也可以使用换行符 [ 
 ]。

 

posted @ 2018-05-12 14:45  Azning  阅读(232)  评论(0编辑  收藏  举报