python的日常(一)——字符串学习

python进阶的回顾:

基本输入输出:

input('提示')
print(对象1, 对象2, .... sep=' ', end='\n')

if 语句(条件语句,分支语句):

if xxxx:
  pass

if xxxx:   pass else:   pass if xxxx:   pass elif yyyy:   pass elif zzzz:   pass

布尔运算  not and(与) or(或)  x and y  x or y

一元运算符  + (正号)  - (负号)

条件表达式  1 + 2 if 5 > 6 else 4 + 5

pass 语句

pow 函数 x ** y

隐式换行  () [] {}

 接下来针对python中很重要的数据结构字符串进行学习

字符串 str
作用:用来记录文本(文字)信息
字符串的表示方法:在非注释中,凡是用引号括起来的部分都是字符串  ' 单引号  " 双引号  ''' 三单引号  """ 三双引号

空字符串的字面值表示方式
''  ""  ''''''  """"""
非空字符串的字面值表示方式
'hello'  "hello"  '''hello'''  """hello"""
单引号和双引号的区别:  单引号内的双引号不算结束符  双引号内的单引号不算结束符

三引号字符串:
作用:三引号字符串的换行会自动转换为换行符'\n'
三引号内可以包含单引号和双引号
表示:

'welcome to beijing\nI like python!\nI am studing!'
s = '''welcome to beijing
I like python!
I am studing!'''

 

用转义序列代表特殊字符
字符串字面值中,用字符反斜杠(\) 后跟一些字符代表一个字符

其中字符串中的转义字符表:(如图所示)

 

ASCII编码:(常用ASCII编码)

'0' 48 0x30  'A' 65 0x41  'a' 97 0x61

冷门知识:raw 字符串(原始字符串)

字面值格式:   r'字符串内容'  r"字符串内容"  r'''字符串内容'''  r"""字符串内容"""

作用:让转义字符 \ 无效
示例:

a = 'C:\newfile\test.py'
print(a)
print(len(a)) # 得到字符串的长度
a = r'C:\newfile\test.py'
print(a)
print(len(a))

结果如下:

C:
ewfile    est.py
16
C:\newfile\test.py
18

 

字符串的运算

算术运算符:

+    +=    *    *=
+ 加号运算符用于字符串的拼接

* 运算符用于生成重复的字符串

x = 'abcd' + 'efg'
print(x) # abcdefg
x += '123'
print(x) # abcdefg123


x = '123'
y = x * 2 # y = '123123'

x *= 3 # x = '123123123'
x = 3
x *= '123' # x = '123123123'

 

# 写一个程序,打印一个高度为4的矩形方框
# 要求输入一个整数,此整数代表矩形的宽度,输出此矩形
# 如:
#  请输入宽度: 10
#  打印如下:
#  ##########
#  #        #
#  #        #
#  ##########

w = int(input("请输入宽度: "))

line1 = '#' * w
line2 = '#' + ' ' * (w - 2) + '#'
print(line1)
print(line2)
print(line2)
print(line1)

字符串的比较运算

运算符:>   >=    <    <=   ==   !=

'A' < 'B' # True
'B' < 'a' # True
'ABC' > 'AB' # True
'AD' < 'ABC' # False
'ABC' == 'abc' # False

in / not in 运算符

作用:in 用于序列,字典,集合中,用于判断某个值是否存在于容器中,如果存在则返回True, 否则返回False

格式:对象 in 容器

s = 'welcome to tarena!'
'to' in s # True
'weimingze' in s # False

字符串的索引操作

python 字符串str是不可以改变的字符序列

索引 index  

索引语法:字符串[整数表达式]

python 序列都可以用索引(index) 来访问序列中的对象(元素)
python 序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s) -1
python 序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,第一个是-len(s)

s = 'ABCDE'
print(s[0]) # A
print(s[1]) # B
print(s[4]) # E

切片 slice

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

s = 'ABCDE'
a = s[1:4] # a -> 'BCD'
a = s[1:] # a -> 'BCDE'
a = s[:2] # a -> 'AB'
a = s[:] # a -> 'ABCDE'
a = s[4:2] # a -> ''
a = s[2:10000] # a -> 'CDE' 开始索引/结束索引可以越界
a = s[::2] # a -> 'ACE'
a = s[1::2] # a -> 'BD'
a = s[::-1] # a -> 'EDCBA'
a = s[::-2] # a -> 'ECA'
a = s[4:0:-2] # a -> 'EC'

 

# 练习:
#   1. 写一个程序,输入一个字符串,把字符串的第一个字符和
#     最后一个字符去掉,打印出处理后的字符串


s = input('请输入字符串: ')
s2 = s[1:-1]
print("处理后的字符串是:", s2)

 

# 2. 输入任意一个字符串,判断这个字符串是否是回文
#   回文是指中心对称的文字,如:
#     上海自来水来自海上
#     ABCCBA
#     12321

s = input("请输入字符串: ")
s2 = s[::-1]
if s == s2:
    print(s, '是回文')
else:
    print(s, '不是回文')

 

Python3中常用的序列函数(自建函数)

len(seq) :返回序列的长度
max(x) :返回序列的最大值元素
min(x) :返回序列的最小值元素

s = "ABCD"
print(len(s)) # 4
print(max(s)) # D
print(min(s)) # A

字符串编码转换函数

ord(c) :返回一个字符串的Unicode编码值
chr(i) :返回i这个值所对应的字符

print(ord('A')) # 65
print(ord('')) # 20013

 

# 1. 写一个程序,输入一段字符串,如果字符串不为
#    空,则把第一个字符的编码打印出来


s = input("请输入一段字符串: ")

if s != '':
    # code = ord('s')
    code = ord(s[0])
    print('第一个字符的编码是:', code)
# 2. 写一个程序,输入一个整数值(0~65535),打印出
#     这个数值所对应的字符

n = int(input("请输入一个整数(0~65535)"))

print('对应的值是:', chr(n))

 

整数转换为字符串函数

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


字符串的构造(创建)函数 str

str(obj='') 将对象转换为字符串

s = 123
print(str(s) + '456') # 123456

 

posted @ 2019-02-11 09:13  LeoLRH  阅读(223)  评论(0编辑  收藏  举报