[python全栈]02.python基础[part I](3)

目录

  1. 字符串
  2. 字符串转译、ASCII编码
  3. raw字符串、字符串的运算
  4. in与 not in、字符串索引
  5. 切片
  6. 序列函数、编码转换函数
  7. 整数转字符串函数
  8. 字符串的构造函数

1. 字符串

字符串 str
	作用: 用来记录文本(文字)信息
	字符串的表示方法:
		在非注释中,凡是用引号括起来的部分都是字符串
		'str'		单引号
		"str" 		双引号
		'''str'''	三单引号
		"""str"""	三双引号
	字符串字面值的表示方式:
		空字符串的字面值表示方式:
			' ' ;" " ;''' ''';""" """
		非空字符串的字面值表示方式:
			'hello';"hello";'''hello''';"""hello"""
		单引号和双引号的区别:
			单引号内的双引号不算结束符 #print('"hello"') #>>>"hello"
			双引号内的单引号不算结束符 #print("'hello'") #>>>'hello'
		三引号字符串:
			作用:
				三引号字符串的换行会自动转换为换行符'\n'	#隐式换行
				三引号内可以包含单引号和双引号
			如何表示:
			welcome to beijing
			I like python!
			I am studing!'
			
			1.	print('welcome to beijing\nI like python!\nI am studing!')
			2.	s = '''welcome to china
				I Iike python!
				I am studing!
				'''		#在交互界面隐式换行
				print(s)		

2. 字符串转译、ASCII编码

用转义序列代表特殊字符:
	字符串字面值中,用字符反斜杠(\)后跟一些字符代表一个字符
字符串中的转义字符表:
	\'			代表一个单引号
	\''			代表一个双引号
	\\			代表一个反斜杠
	\n			换行
	\r			返回光标至行首	
	\f			换页
	\t			水平制表符
	\v			垂直制表符
	\b			倒退
	\0			空字符,字符值为0
	\0oo		oo为两位八进制表示的字符
	\xXX		XX为两位十六进制表示的字符
	\uXXXX		Unicode16的十六进制表示的字符
	\UXXXXXXXX	Unicode32的十六进制表示的字符
	eg:
		s =' \'\"\'\'\'\"\"\" '
		print(s) #>>>'"'''"""

ASCII编码:
https://baike.baidu.com/item/ASCII/309296?fr=aladdin

常用ASCII编码:
	字符	十进制	十六进制
	'0'		48		0x30
	'A'		65		0x41
	'a'		97		0x61

3. raw字符串、字符串的运算

raw 字符串(原始字符串):
	字面值格式:
		r'字符串内容'
		r''字符串内容"
		r'''字符串内容'''
		r"""字符串内容"""
	作用:让转义字符 \ 无效
	eg:
		a = 'C:\newfile\test.py'
		print(a)	
		print(len(a))	#>>>16
		b = r'C:\newfile\test.py'
		print(b)		#>>>C:\newfile\test.py
		print(len(b))	#>>>18
字符串的运算:
	运算符: + ; += ; * ; *=
		+	加号运算符用于字符串的拼接
		*	运算符用于生成重复的字符串
		+=  a += b	#	a = a + b
		*=	a *= b	#	a = a * b
		eg:
		a='ABCD'
		b='EFGH'
		c = 2
		print(a+b)		#>>>ABCDEFGH
		a+=b
		print(a)		#>>>ABCDEFGH
		print(a*c)		#>>>ABCDEFGHABCDEFGH
		a*=c
		print(a)		#>>>ABCDEFGHABCDEFGH
字符串的比较运算:
	单个字符比较的是编码值;多个字符比较对应位置比较,出现结果便输出
	运算符:
		> ; >= ; < ; <= ; ==
	eg:
		'A' < 'B'			#>>>True
		'B' < 'a'			#>>>True
		'ABC' > 'AB'		#>>>True (A=A;B=B;C>'')
		'AD' < 'ABC'		#>>>False (A=A;D>B)
		'ABC' == 'abc'		#>>>False

4. in与 not in、字符串索引

in / not in 运算符:
	作用:
		in 用于序列,字典,集合中,用于判断某个值是否存在于容器中,
		如果存在则返回True;否则返回False
	格式: 对象 in 容器
	eg:
	s = 'welcome to tarena!'
	'to' in s		#>>>True
	'TO' in s 		#>>>False 
	'TO' not in s 	#>>>True 
	'e to t' in s	#>>>True
字符串的索引操作:
	python 字符串str是不可以改变的字符序列
	索引语法:
		字符串[整数表达式]	 #只能是整数表达式(!整数表达式!)
	说明:
		python序列都可以用索引(index)来访问序列中的对象(元素)
		python序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)-1
		python序列的反向索引是从-1开始的, -1代表最后一个, -2代表倒数第二个,第一个是-len(s)
	eg:
	s = 'ABCDE'
	print(s[0], s[1], s[4], s[-1], s[-2],sep='')	#>>>ABEED

5. 切片

切片 slice
	作用:从字符串序列中取出一部分相应的元素重新组成一个字符串
	语法:字符串[(开始索引b):(结束索引e)(:(步长s))]	#()内部分可以省略
	说明:
		1.开始索引是切片开始切下的位置,0代表第一个元素,-1代表最后一个元素
		2.结束索引是切片的终止索引(但不包含终止索引)(!不包含!)
		3.步长是切片每次获取完当前索引后移动的方向和偏移量
			1)没有步长相当于取值完成后向后移动一个索引的位置
			2)当步长为正整数时,取正向切片:
				步长默认值为1,开始索引默认值为0,结束索引的默认值为len(s)
			3)当步长为负整数时,取反向切片:
				反向切片时,默认的起始位置为最后一个元素,默认终止位置为第一个元素的前一个位置
		eg:
		s = 'ABCDEF'
		s[1:5:2]	#>>>'BD' ;从s[1]开始不包含s[5],步长为2
		s[:2]		#>>>'AB';从s[0]开始不包含s[5]
		s[2:]		#>>>'CDEF';从s[2]开始到且不包含s[len(s)-1]
		s[::2]		#>>>'ACE';从s[0]开始到且不包含s[len(s)-1],步长为2
		s[4::-1]	#>>>'EDCBA';反向切片,从s[4]开始,到且包含s[0],步长为1
		s[::-1]		#>>>'FEDCBA';
		s[4:0:-2]	#>>>'EC'

练习:

#输入一个字符串,把字符串的第一个和最后一个字符去掉
s = input('请输入一个字符串:\n')
print(s[1:len(s)-1])
'''输入任意一个字符串,判断这个字符串是否为回文
回文是指中心对称的文字,如:上海自来水来自海上;ABCCBA;12321'''
s = input('请输入一个字符串:\n')
s1 = s[::-1]	#字符串的倒置
if s1 == s :
    print('您输入的是回文')
else:
    print('您输入的不是回文')

6. 序列函数、编码转换函数

python 3 中常用的序列函数:
	len(seq)	返回序列的长度	
	max(x)		返回序列的最大值元素
	min(x)		返回序列的最小值元素
	eg:
		s = 'ABCDE'
		print(len(s))	#>>>5
		print(max(s))	#>>>E
		print(min(s))	#>>>A
		##########
		len('a b\nc')		#>>>5
		len('中y d\n太')	#>>>6
编码转换函数:
	ord(c)	返回一个字符串的Unicode编码值
	chr(i)	返回i这个值所对应的字符
	eg:
		print(ord('A'))		#>>>65
		chr(65)				#>>>'A'
		print(chr(65))		#>>>A
		print(ord('中'))	#>>>20013
		chr(20013)			#>>>'中'

练习

'''输入一段字符串,如果字符串不为空,
则把第一个字符的编码打印出来
'''
str0 = input('请输入一段字符\n')
if bool(str0) != False :
    print('该字符串第一个字符的编码为:',ord(str0[0]))
else:
    print('请勿输入空字符串')
'''输入一个整数值(0~65535),
打印出这个数值所对应的字符
'''
int0 = int(input('请输入0~65535范围内的整数\n'))
if int0>=0 and int0 <= 65335 :
     print(chr(int0))
else:
    print('输入有误,请重新输入0~65535范围内的整数')

7. 整数转字符串函数

整数转换为字符串函数:
	hex(i)	将整数转换为十六进制字符串
	oct(i)	将整数转换为八进制字符串
	bin(i)	将整数转换为二进制字符串

8.字符串的构造函数

字符串的构造(创建)函数	str :
	str(obj ='')	#基本可以将任何对象转换为字符串
	eg:
		s =123
		print(str(s)+'456')	#>>>123456

练习

'''
用字符串* 运算符打印三角形,要求输入一个整数,此整数代表此三角形离左侧的字节数
    如:请输入离左侧的距离: 3,则打印:
          *
         ***
        *****
       ******* 
 '''
n = int(input('请输入一个整数:'))
print(' '*n,'   *')
print(' '*n,'  ***')
print(' '*n,' *****')
print(' '*n,'*******')
'''输入三行文字,让这三行文字在一个方框居中显示,如输入(不要输入中文):
  hello world!
  my name is python
  python
  显示如下:
  +----------------------+
  |     hello world!     |
  |   my name is python  |
  |        python        |
  +----------------------+
  '''
#######原始方法
a = input('请输入字符串1: ')
b = input('请输入字符串2: ')
c = input('请输入字符串3: ')
#计算最长的一个字符串长度,保存为m
m = len(a)
m = len(a) if len(a)>len(b) else len(b)
m = m if m > len(c) else len(c)
#左右空格计算
la_l = int((m-len(a))//2)
la_r = m - len(a) - la_l
lb_l = int((m-len(b))//2)
lb_r = m - len(b) - lb_l
lc_l = int((m-len(c))//2)
lc_r = m - len(c) - lc_l
#打印
print('+ ','-'*(m+2),' +',sep ='')
print('|  ' , ' '*la_l , a , ' '*la_r , '  |',sep ='')
print('|  ' , ' '*lb_l , b , ' '*lb_r , '  |',sep ='')
print('|  ' , ' '*lc_l , c , ' '*lc_r , '  |',sep ='')
print('+ ','-'*(m+2),' +',sep ='')

#######字符串方法
a = input('请输入字符串1: ')
b = input('请输入字符串2: ')
c = input('请输入字符串3: ')
#计算最长的一个字符串长度,保存为m
m = max(len(a),len(b),len(c))
print('+ ' + '-'*(m+2) + ' +')
print('| '+a.center(m)+'  |')
print('| '+b.center(m)+'  |')
print('| '+c.center(m)+'  |')
print('+ ' + '-'*(m+2) + ' +')
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值