第三章 字符串

字符串下标

  1. 字符串是一串字符,可以从中提取某一个字符
  2. 使用下标访问字符,python 中字符下标是从 0 开始的 : a[0]
  3. 负数下标表示从后往前,从 -1 开始: a[-1]
  4. 可以使用 [start:end:step] 截取字符串,截取的字符串包含 start,但不包含end;可以只写 start 或者 end 或者都不写
  5. 在 python 中字符串是不可变的值,不能修改其中某一个字符
  6. 倒序排列字符串  [ : : -1]
say = '0123456789'
print(say[0])       # 0
print(say[-1])      # 9
print(say[0:3])     # 012
print(say[7:])      # 789
print(say[:3])      # 012
print(say[::2])     # 02468
print(say[::-1])    # 9876543210
print(say[-5:-2])   # 567

my_string = 'abcdefg'
print(my_string[3])      # d
'''
  string 在python中为不可变量
  my_string[0] = 'm' 
    erro:'str' object does not support item assignment
  my_string[0] = m 
    erro:name 'm' is not defined
'''

 字符串方法

  1. len() 获取字符串长度   < 注意!是 len(), 不是 length() >                    
  2. find() 查找子字符串的位置                         
  3. count() 计算子字符串出现的次数     
  4. in 和 not in 判断是否包含某一子字符串 
  5. replace() 进行字符串替换
  6. 以上所有操作均是生成一个新的字符串,不会对原字符串产生影响
  7. split() 对原字符串进行分割,生成一个 list
###              len() 使用方法              ###
string = 'Hello, world!' # 逗号后面有一个空格
length = len(string)                                      # 13
print(length)
# 字符串中包含中文字符时,其长度与编码格式有关,注意语法格式 '嗨'.encode()
print(len('嗨'))                                       # 1
print(len('嗨'.encode('utf-8')))                       # 3
print(len('嗨'.encode('gbk')))                         # 2

###              find() 使用方法              ###
index = string.find('w')
print(index) # 注意下标从 0 开始                            # 7
index = string.find('o')
print(index) # 查找的字符多次出现时,返回第一次出现的位置      # 4
index = string.find('wo')
print(index) # 查找多个字符时,返回第一个字符的位置           # 7
index = string.find('hh')                                  # -1
print(index) # 查找不存在的字符时,返回-1

###              count() 使用方法              ###
c = string.count('l')
print(c)

###              replace() 使用方法              ###
new_string_1 = string.replace('l','**')
print(new_string_1)
new_string_2 = string.replace(', ','_')
print(new_string_2)

###             in() 和 not in() 使用方法         ###
is_in = 'H' in string
print(is_in)  # 返回的结果为布尔值: true 和 false                   
is_in = '8' in string
print(is_in)
is_in = 'll' not in string
print(is_in)

###              split() 使用方法              ###
my_string = '123,456,789'
children_1 = my_string.split(',')
print(children_1)  # 返回的结果为 list
children_2 = my_string.split('45')
print(children_2)

转义字符

  1. 转移字符:转换字符原来的意义
  2. \" = ", \' = ', \n = new line, \t = tab, \\ = \
  3. r"..." 或者 R"..." 表示原始字符串,字符串中的所有转义字符失效,按原样显示字符串
  4. """ 或者 ''' 创建多行字符串
###       转义字符的使用方法        ###
my_string_1 = "\""
print(my_string_1)

my_string_2 = '"'
print(my_string_2)

my_string_3 = 'Hello\nworld'
print(my_string_3)
my_string_4 = R'\n represent a new line'
print(my_string_4)

my_string_5 = 'Hello\tworld'
print(my_string_5)
my_string_6 = r'\t represent Tab'
print(my_string_6)

html = '''<html1>
<html2>
<html3>'''
print(html)

### output ###
    # "
    # "
    # Hello
    # world
    # \n represent a new line
    # Hello   world
    # \t represent Tab
    # <html1>
    # <html2>
    # <html3>

格式化字符串

  1. 格式化字符串:将其它类型的数据按照指定格式转换成字符串,python 中一共有3种方法
  2. F-String(Python 3.6+):result = f "小明今年{age}岁了!"
  3. format():result = "小明今年{}岁了!".format(age)
  4. % 方法,已弃用
## 输出  你好,小明!你今年已经 18 岁啦! ##

name = '小明'
age = 18

### 字符串拼接方法
result = '你好,' + name + '!你今年已经 ' + str(age) + ' 岁啦!'
print(result)

### F-String 方法
result = f'你好,{name}!你今年已经 {age} 岁啦!'
print(result)

### format 方法
result = '你好,{}!你今年已经 {} 岁啦!'.format(name,age)
print(result)
# format里面有顺序,下标从0开始
result = '你好,{0}!你今年已经 {1} 岁啦!'.format(name,age)
print(result)

### % 方法,已弃用
result = '你好,%s!你今年已经 %d 岁啦!' % (name,age)
print(result)

格式化数字

  1. 以:开头对数字进行格式化 
  2. [ [ 填充 ] 对齐 ] [ 符号 ] [ 宽度 ] [ . 精度 ] [ 类型 ]
######        格式化数字         #####
pi = 3.1415926
result = f"圆周率 {pi} 是一个无限不循环小数"
print(result)
### 设置显示格式 [ [ 填充 ] 对齐 ] [ 符号 ] [ 宽度 ] [ . 精度 ] [ 类型 ]
# 精度
result = f"圆周率 {pi:.4f} 是一个无限不循环小数"
print(result)
# 宽度
result = f"圆周率 {pi:50.2f} 是一个无限不循环小数"
print(result)
# 符号
pi = -3.1415926
result = f"圆周率 {pi:+50.2f} 是一个无限不循环小数"
print(result)
pi = 3.1415926
result = f"圆周率 {pi:+50.2f} 是一个无限不循环小数"
print(result)
# 对齐
result = f"圆周率 {pi:<-50.2f} 是一个无限不循环小数"
print(result)
result = f"圆周率 {pi:^-50.2f} 是一个无限不循环小数"
print(result)
result = f"圆周率 {pi:>+50.2f} 是一个无限不循环小数"
print(result)
# 填充
result = f"圆周率 {pi:*^+50.2f} 是一个无限不循环小数"
print(result)

### 表示成百分数形式
result = f"圆周率 {pi:.2%} 是一个无限不循环小数"
print(result)
result = f"圆周率 {pi:.0%} 是一个无限不循环小数"
print(result)

### 进制转换
num = 25
result = f"25表示为 十进制 形式:{num}"
print(result)
result = f"25表示为 二进制 形式:{num:#b}"
print(result)
result = f"25表示为 二进制 形式:{num:b}"
print(result)
result = f"25表示为 八进制 形式:{num:o}"
print(result)
result = "25表示为 十六进制 形式:{:x}".format(num)
print(result)

### output
# 圆周率 3.1415926 是一个无限不循环小数
# 圆周率 3.1416 是一个无限不循环小数
# 圆周率                                               3.14 是一个无限不循环小数
# 圆周率                                              -3.14 是一个无限不循环小数
# 圆周率                                              +3.14 是一个无限不循环小数
# 圆周率 3.14                                              是一个无限不循环小数
# 圆周率                       3.14                        是一个无限不循环小数
# 圆周率                                              +3.14 是一个无限不循环小数
# 圆周率 **********************+3.14*********************** 是一个无限不循环小数
# 圆周率 314.16% 是一个无限不循环小数
# 圆周率 314% 是一个无限不循环小数
# 25表示为 十进制 形式:25
# 25表示为 二进制 形式:0b11001
# 25表示为 二进制 形式:11001
# 25表示为 八进制 形式:31
# 25表示为 十六进制 形式:19

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值