字符串

1.字符串:str

1. 作用:
用来记录文本(文字)信息
2. 字符串的表示方法:
在非注释中,凡是用引号括起来的部分都是字符串
' ' 单引号    '''  ''' 三单引号
" " 双引号    """  """  三双引号print()
3.空字符串的字面值表示方式
''
""
''''''
""""""
(注意:中间什么都没有,不是空格,空格算空格字符串)
4.单引号和双引号的区别:
单引号内的双引号不算结束符
双引号内的单引号不算结束符	
5.三引号字符串:
作用:n = int(input('请输入行数:'))

	三引号字符串的换行会自动转换为换行符'\n'print()
	三引号内可以包含单引号和双引号
例如:
	welcome to beijing\n I like python\n I am a student
直接回车换行:
	"""welcome to beijing
	I like python
	I am a student"""
6.用转义序列代表特殊字符:
字符串字面值中,用字符反斜杠(\)后跟一些字符代表一个字符
字符串中的转义字符表:
	\'  代表一个单引号
	\\  代表一个反斜杠\>>> hex(100)
	\n  换行
	\r  返回光标至行首
	\f  换页
	\t  水平制表符	
	\v  垂直制表符
	\b  倒退
			>>> print('abcd\bE')
			abcE

	\0  空字符,字符值0
			>>> print('\0')
			(打印出空白)

	\0oo oo为两位八进制表示的字符
	\xXX XX为两位十六进制表示的字符
	\uXXXX Unicode16的十六进制表示的字符
	\uXXXXXXXX Unicode32的十六进制表示的字符
(注意:UNICIDE16(65536个))
7.ASCII编码:
ASCII 字符表
$ man ascii
常用的ASCII编码:
	字符       十进制       十六进制
	'0'		48			0x30
	'A'		65			0x41
	'a'		97			0x61
8.raw 字符串(原始字符串):
字面值格式:r '字符串内容 '(双引号,三引号都可以)
作用:
	让转义字符无效
示例:
	>>> string = 'C:\now'
	>>> string
	'C:\now'
	>>> print(string)
	C:
	ow
	>>> string = r'C:\now'
	>>> string
	'C:\\now'
	>>> print(string)
	C:\now
9.字符串的运算:
算术运算符: +   +=    *     *=
+ 用于字符串的拼接
*  用于生成重复的字符串
10.字符串的比较运算:
>   <   >=  <=   ==   !=
比较第一个子母的ASCII码
11.in / not in
in / not in 用于序列,字典,集合,字符串,用于判断某个值是存在于容器中,如果存在返回True,否则返回False
12.字符串的索引:
python字符串str是不可改变的字符序列
索引语法:
	字符串[整数表达式]
说明:
	python序列都可以用索引(index)来访问序列中的对象(元素)
	python序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)- 1
	python的反向索引是从-1开始的,-1代表最后print()一个,第一个是-len(s)
13.切片slice:
从字符串序列中取出相应的元素重新组成一个字符串序列
语法:
	s[(开始索引b):(结束索引e)(:(步长s))]
	注:小括号()括起来的部分代表可省略
语法说明:
	开始索引是切片开始切下的位置0代表第一个
	结束索引是切片的终止索引(但不包含终止点)
	步长是切片每次获取完当前元素后移动的方向和偏移量
	1)没有步长,相当于取值完后向右移动一个索引的位置(默认为1)
	2)当步长为正数时,取正向切片:步长默认为1,开始索引默认为0,结束索引默认为len(s)
	3)当步长为负数时,取反向切片,反向切片时,默认起始位置为最后一个元素,终止位置是第一个元素的前一个位置
注意这种情况:
	>>> s = 'abcdefg'
	>>> s[1:1]
	''
	>>> s[3:1]
	''print()
	>>> s = 'abcde'
	>>> s[3::-2]
	'db'
14.python3中常用的序列函数:
len(seq) 返回序列的长度
max(x)   返回序列最大值元素
min(x)   返回序列最小值元素
ord(c)   返回一个字符串的Unicode编码值
chr(i)   返回i这个值所对应的字符
例如:
	print(ord('A'))  # 65
	print(chr(65))   # ’A'
15.整数转换成字符串函数:
hex(i)  将整数转换成为十六进制的字符串
oct(i)  将整数转换成八进制字符串
bin(i)  将整数转换成二进制字符串  
	>>> hex(100)
	'0x64'
	>>> oct(100)
	'0o144'
	>>> bin(100)
	'0b1100100'
16.字符串的构造(创建)函数str
str(obj='')   将对象转换成字符串
示例:
	s = 123
	print(str(s) + '456')   #123456
17.常用的字符串方法(mothod):
1.字符串方法的调用语法:
	对象·方法名(方法传参)
	注:
		方法的调用属于表达式,通常可以返回一个值或None
	示例:
		'abc'.isalpha()   # 正确
		123.isalpha()
s.isdigit() 判断是否全是数字
s.isalpha() 字母,islower() 小写字母,isupper() 大写字母,isspace 空白字符
				(空白字符是指空格、水平制表符、换行符等不可见字符)
s.center(width[,fill]) 将字符串居中,默认填充空格,fill用字符串的形式.s.center(20,'*')
s.count(s[start,[,end]]) 获取一个字符串中子串的个数(注意:end索引最后不包含的)
s.find(s[start,[end]]) 获取字符串中子串的索引,失败返回-1.
s.strip() 返回去掉空白字符的字符串(去掉左右两边的空白,中间不会去掉)
s.title() 返回每个英单词首字母大写的字符串
s.upper() 返回一个全大写的字符串
s.lower() 返回一个全小写的字符串
s.replace(old,new[,count]) 将字符串old用new代替,生成一个新的字符串

import string as st
	return (st.capwords(string))一个英文句子首字母大写

2.格式化字符串:
	作用:
		生成一定格式的字符串
	运算符:%
	语法格式:
		格式字符串 % 参数值
		格式字符串 %(参数值1,参数值2)
3.format()方法:
	1.format方法接受位置参数和关键字参数,二者传递一个叫做replacement字段。而这个replacement字段在字符串内由大括号{}表示
		>>> "{0} love {1}.{2}".format("I","fishc","com")
		'I love fishc.com'
		# 以上是位置参数方法
		>>> "{a} love {b}.{c}".format(a = 'I',b = 'fishc',c = 'com')
		'I love fishc.com'
		# 以上是关键字参数方法
		>>> "{0} love {b}.{c}".format("I",b = 'fishc',c = 'com')
		'I love fishc.com'
		>>> "{a} love {b}.{0}".format(a = 'I',b = 'fishc','com')
		  File "<stdin>", line 1
		SyntaxError: positional argument follows keyword argument
		# 以上是位置参数和关键字参数综合使用,但是位置参数必须在关键字参数之前,否则会出错
	2.如果要把大括号打印出来,只需在外面用大括号包起来即可,跟字符串的转义字符一样(要打印\,对他进行转义即可\\)
		>>> "{{0}}".format("不打印")
		'{0}'
		位置参数“不打印”没有被输出,这是因为{0}的特殊功能被外层的大括号{}剥夺,因此没有字段可以输出。
		注意:这并不会产生错误
	3.format的格式化操作:
		>>> "{0}:{1:.2f}".format('圆周率',3.1415926)
		'圆周率:3.14'
		# 位置参数1后面多了个冒号。在替换域中,冒号表示格式化符号的开始
		# “.2”的意思是四舍五入到保留两位小数点,而f是浮点式


4.占位符(%)和类型码(d/s/f/x/o/g/e/%)之间的格式语法:
	% [格式语法] 类型码
	- 左对齐
	+ 显示正号
	0 补0
	宽度(整数)
	宽度·精度(整数)
		例如:  '%10d' % 123   # '       123'
		        '%-10d' % 123  # '123     '
			'%05d' % 123 # '00123'
			'%7.3f' % 3.1415926  # '003.141'
	占位符 [- + 0] [宽度·精度] 类型码
        注意(以下这种用法)
		s1 = input('>>>')
		s2 = input('>>>')
		s3 = input('>>>')
		print('%20s' % s1)
		print('%20s' % s2)
		print('%20s' % s3)  #总长宽度为20

		m = max(len(s1),len(s2),len(s3))
		print('最大值',m)
		f = '%%%ds' % m    #求以最长的为宽度(两个%代表一个%,%d代表m)
		print(f%s1)        #相当于'%ms' % s1(当然,直接这样写是错的)
		print(f%s2)
		print(f%s3)
18.字符串文本解析方法split 和 join
S.split(sep = None) 将字符串,使用sep作为分隔符分割S字符串,【返回分割后的字符串的列表】,当不给定参数时,用空白字符作为分隔符进行分割
S.join(iterable) 用可迭代对象中的字符串,返回一个中间用S进行分隔的【字符串】
   例如:
	s = 'Beijing is captital'
	l = s.split(' ') # l = ['Beijing','is','captital']
	s = '小张,20,100'
	l = s.split(',') # l = ['小张',20,100]

	
	l = ['aaa','bbb','ccc']
	'-'.join(l)  # 'aaa-bbb-ccc'

【序列】

  • 序列:
    列表、元组、字符串

  • 共同点:
    1.都可以通过索引得到每一个元素
    2.默认索引值总是从0开始(支持负数)
    3.可以通过分片的方法的得到一个范围内的元素的集合
    4.有很多共同的操作符(重复操作费、拼接操作符、成员关系操作符)
    统称为序列

  • 序列常用的BIF(内建方法)

  1. list([iterable])
    list()方法用于把一个可迭代对象转换成列表

  2. tuple([iterable])
    tuple()方法用于把一个可迭代对象转换成元组

  3. str(obj)
    str()方法用于把obj对象转换成字符串

  4. len(sub)
    len()方法用于返回sub参数的长度

  5. max(…)
    返回序列或者参数集合中的最大值

  6. min(…)
    返回序列或者参数集合中的最小值

  7. sum(iterable[,start])
    sum方法用于返回序列iterable的总和,但sum()方法有一个参数
    ,如果设置该参数,表示从该值开始加起。
    示例:

    >>>tuple = 1,2,3,4,5
    >>>sum(tuple)
    15
    >>>sum(tuple,10)
    25
    # 10 + 1 + 2 + 3 + 4 +5
    
  8. sorted(iterable,key=None,reverde=False)
    sorted方法用于返回一个排序的列表。
    注意;
    sort()是实现列表的原地排序,而sorted()是返回一个排序后的新列表

  9. reversed(sequence)
    reversed()方法用于返回逆向迭代序列的值。
    注意;
    reverse()是列表的原地翻转,而reversed()是返回一个翻转后的迭代器对象

    >>> l = [1,3,5,7,9]
    >>> reversed(l)
    <list_reverseiterator object at 0x035E6090>
    >>> for i in reversed(l):
    	print(i,end = ' ')
    
    	9 7 5 3 1 
    
  10. enumerate(iterable)
    ennumerate()方法生成一个由二元组(就是元素个数为二的元组)构成的一个迭代对象
    每个二元组是由可迭代参数的索引号及其对应的元素组成的。

    >>> s = 'Fishc'
    >>> for i in enumerate(s):
    	print(i)
    
    
    (0, 'F')
    (1, 'i')
    (2, 's')
    (3, 'h')
    (4, 'c')
    
  11. zip(iter [,iter2[…]])
    zip()方法用于返回由各个可迭代参数共同组成的元组

    >>> s1 = [1,3,5,7,9]
    >>> s2 = 'Fishc'
    >>> for i in zip(s1,s2):
    	print(i)
    
    
    (1, 'F')
    (3, 'i')
    (5, 's')
    (7, 'h')
    (9, 'c')
    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值