在python中字符串是使用单引号,双引号,三引号包裹起来的字符的序列,用来表示文本信息。
a = ‘a‘
b = "bc"
c = """hello,world"""
d = ‘‘‘hello,d‘‘‘
e = """
hello,
world!
"""
print(‘a的类型为:‘, type(a)) # a的类型为: <class ‘str‘>
print(‘b的类型为:‘, type(b)) # b的类型为: <class ‘str‘>
print(‘c的类型为:‘, type(c)) # c的类型为: <class ‘str‘>
print(‘d的类型为:‘, type(d)) # d的类型为: <class ‘str‘>
print(‘e的类型为:‘, type(e)) # e的类型为: <class ‘str‘>
使用单引号和双引号进行字符串定义没有任何区别,当要表示字符串的单引号时用双引号进行定义字符串,反之亦然。
一对单引号或双引号只能创建单行字符串,三引号可以创建多行表示的字符串。三双引号一般用来做多行注释,表示函数,类定义时的说明。
python中str
表示字符串类型。
a = ""
b = ‘‘
为了使代码便于阅读和维护,需要在代码中加入注释。python中的注释分为单行注释和多行注释。
在一行开头,或是在语句结尾使用井号#
进行单行注释,例如:
# 我是行注释
age = 18 # 年龄(我也是注释)
注意:按照规范如果紧跟代码注释需要两个空格后再注释。井号后面空一个空格后再写注释内容
多行注释使用三单引号或三双引号进行注释都可以,但一般使用三双引号
def my_abs(arg):
"""
返回arg的绝对值
arg:数值类型
"""
pass
任何序列类型中的元素都有索引
用来表示它在序列中的位置。
字符串是字符的序列表示,单个字符在字符串中的位置使用索引
来表示,也叫下标。
索引使用整数来表示。
通过索引
可以获取字符串中的单个字符
语法如下:
str[index]
>>> s = ‘hello‘
>>> print(s[0])
>>> ‘h‘
>>> print(s[-1])
>>> ‘o‘
注意python中序列的索引从0
开始。
获取序列中的子序列叫切片。
字符串的切片就是获取字符串的子串。
字符串切片的语法如下:
str[start:end:step]
start
表示起始索引,end
表示结束索引,step
表示步长。
str[m:n:t]
表示从字符串索引为m
到n
之间不包含n
每隔t
个字符进行切片。
当step
为1的时候可以省略。
特别的,当step
为负数时,表示反向切片。
>>> s = ‘0123456789‘
>>> print(s[1:5]) # 包头不包尾
>>> ‘1234‘
>>> print(s[:5]) # 从头开始切可以省略start
>>> ‘01234‘
>>> print(s[1:]) # 切到末尾省略end
>>> ‘123456789‘
>>> print(s[1::2]) # 步长为2进行切片
>>> ‘13579‘
>>> print(s[1::-2]) # 不长为负数反向切片
>>> ‘1‘
获取一个字符串的逆串,例如‘abc‘
的逆串是‘cba‘
。
python中可以通过+
拼接两个字符串
>>> a = ‘hello‘
>>> b = ‘ ‘
>>> c = ‘world!‘
>>> print(a+b+c)
>>> ‘hello world!‘
字符串和整数进行乘法运算表示重复拼接这个字符串
>>> print(‘*‘ * 10)
>>> ‘**********‘
通过内建函数dir
可以返回传入其中的对象的所有方法名列表。
>>> dir(‘字符串‘)
[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getnewargs__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mod__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__rmod__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘capitalize‘, ‘casefold‘, ‘center‘, ‘count‘, ‘encode‘, ‘endswith‘, ‘expandtabs‘, ‘find‘, ‘format‘, ‘format_map‘, ‘index‘, ‘isalnum‘, ‘isalpha‘, ‘isascii‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘, ‘islower‘, ‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘, ‘isupper‘, ‘join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, ‘maketrans‘, ‘partition‘, ‘replace‘, ‘rfind‘, ‘rindex‘, ‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘, ‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘, ‘title‘, ‘translate‘, ‘upper‘, ‘zfill‘]
上面输出的不带下划线的都是字符串的可调用方法,字符串使用句点法调用方法。
例如:
‘abc‘.upper() # 返回字符串的全大写形式。
通过内建函数help
可以返回传入函数的帮助信息,注意方法名后不要加小括号。
>>> help(‘字符串‘.replace)
1 和 ‘1‘不同,1.2和‘1.2‘也不相同,但是它们可以相互转化
# 整数和字符串之间的转化
>>> int(‘1‘)
>>> 1
>>> str(1)
>>> ‘1‘
# 浮点数和字符串之间的转化
>>> float(‘1.2‘)
>>> 1.2
>>> str(1.2)
>>> ‘1.2‘
# 尝试 int(‘1.2‘)看看结果会是什么
当需要在字符串中使用特殊字符时,python用反斜杠\
转义字符来进行转义。常用转义字符如下表:
(在行尾时) | 续行符 |
---|---|
\\ |
反斜杠符号 |
\‘ |
单引号 |
\" |
双引号 |
\a | 响铃 |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
print(‘窗前明月光,\n疑是地上霜。‘) # 输出换行
print(‘对\\错‘) # 输出反斜杠本身
print(‘\‘‘) # 输出单引号本身
在字符串前面加上r
表示不转义原样输出
print(r‘窗前明月光,\n疑是地上霜。‘) # \n会原样输出不转义
在实际工作中经常需要动态输出字符。
例如,我们通过程序计算计算机的内存利用率,然后输出
10:15 计算机的内存利用率为30%
其中下划线内容会动态调整,需要根据程序执行结果进行填充,最终形成上述格式的字符串输出。
python支持两种形式的字符串格式化
%
字符串格式化语法格式如下:
%[(name)][flags][width][.precision]typecode
(name)
可选,用于选择指定的key
flags
可选,可供选择的值有,注意只有在和数值类型的typecode
配合才起作用
+
, 右对齐,正数前加正号,负数前加负号-
, 左对齐,正数前无符号,负数前加负号空格
, 右对齐,正数前加空格,负数前加负号0
, 右对齐,正数前无符号,复数前加负号;用0
填充空白处width
,可选字符串输出宽度
.precision
可选,小数点后保留位数,注意只有在和数值类型的typecode
配合才起作用
typecode
必选
s
,获取传入对象的字符串形式,并将其格式化到指定位置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;)`res = ‘%s计算机的内存利用率为%s%%‘ % (‘11:15‘, 75)
# ‘%s‘作为槽位和 % 号后提供的值一一对应
res = ‘%(time)s计算机的内存利用率为%(percent)s%%‘ % {‘time‘:‘11:15‘, ‘percent‘: 75}
# 输出两位数的月份,例如01,02
res = ‘%02d‘ % 8
# 保留2为小数
res = ‘%(time)s计算机的内存利用率为%(percent).2f%%‘ % {‘time‘:‘11:15‘, ‘percent‘: 75.123}
format
函数格式化%
的字符串格式化继承自C语言,python中给字符串对象提供了一个format
函数进行字符串格式化,且功能更强大,并且大力推荐,所以我们要首选使用。
基本语法是<模板字符串>.format(<逗号分隔的参数>)
在模板字符串中使用{}
代替以前的%
作为槽位
‘{}计算机的内存利用率为{}%‘.format(‘11:15‘, 75)
当format中的参数使用位置参数提供时,{}
中可以填写参数的整数索引和参数一一对应
‘{0}计算机的内存利用率为{1}%‘.format(‘11:15‘, 75)
当format中的参数使用关键字参数提供时,{}
中可以填写参数名和参数一一对应
‘{time}计算机的内存利用率为{percent}%‘.format(time=‘11:15‘, percent=75)
{}
中除了可以写参数索引外,还可以填写控制信息来实现更多的格式化功能,语法如下
{<参数序号>:<格式控制标记>}
# 其中格式控制标记格式如下
[fill][align][sign][#][0][width][,][.precision][type]
fill 【可选】空白处填充的字符
align 【可选】对齐方式(需配合width使用)
sign 【可选】有无符号数字
# 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
, 【可选】为数字添加分隔符,如:1,000,000
width 【可选】格式化位所占宽度
.precision 【可选】小数位保留精度
type 【可选】格式化类型
res = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
res = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
# 输出两位数的月份,例如01,02
res = ‘{:0>2}‘.format(8)
# 保留2为小数
res = ‘{time}计算机的内存利用率为{percent:.2%}‘.format(time=‘11:15‘, percent=0.75123)
原文:https://www.cnblogs.com/superwuchaofan/p/12835485.html