Python第一阶段学习总结

【第10天】Python第一阶段学习总结

2021/09/27

一. r语法

  1. 在字符串的最前面加r或R,可以让字符串中所有的转义字符的功能消失(每个符号都会变成普通字符

    str1 = r'C:\users\name\test\demo.py'
    print(str1)
    

二. 字符串格式化

1. 格式字符串

  1. 语法:包含格式占位符的字符串%(数据1,数据2,…)

  2. 格式占位符:

    %s - 字符串占位符(任何类型的数据)
    %d - 整数占位符
    %f - 浮点数占位符(保留6位小数)
    %.Nf - 浮点数保留N位小数

    # 1) %s可以给任何类型的数据占位
    str1 = '%sxxx' % ('六六六')
    print(str1)
    
    str1 = '%sxxx' % [10, 20]
    print(str1)
    
    # 2) %d可以给任何能转换成数字的数据占位
    str1 = '%d - xxxx' % 5.12
    print(str1)
    
    # 3) %f可以给任何能转换成数字的数据占位
    str1 = '%f - xxxx' % 4.34
    print(str1)
    
    # 4) %.Nf
    str1 = '余额:%.2f' % 234523242.99912
    print(str1)
    

2. f-string

  1. 语法:f’{任何有结果的表达式}’ - 用表达式的结果来填充{}所在的位置

    name = '小明'
    age = 18
    str1 =f'{name}-{age}--{age * 10}'
    print(str1)
    
  2. 加参数

    语法:f'{任何有结果的表达式:参数}'
    

    a. .Nf - 控制小数位数

    money = 2305
    str1 = f'金额:{money:.2f}'
    print(str1)
    

    b. , - 逗号分隔银行金额的格式

    money = 23509888
    str1 = f'余额:{money:,}'
    print(str1)
    

    c. .N% - 将数转换成百分比,比值保留N位小数

    rate = 0.5
    str1 = f'市场占有率:{rate:.2%}'
    print(str1)
    

    d. X>N、X<N

    ​ X>N - 将数据转换成长度为N的字符串,不够在前面用X对应的字符来填充
    ​ X<N - 将数据转换成长度为N的字符串,不够在后面用X对应的字符来填充

    <,> - 决定填充的时候填在前面还是后面

    X - 填充字符

    N - 长度

    num = 9
    str1 = f'Python2106{num:0>3}'
    print(str1)        # Python2106009
    

三. 字符串相关方法

1. center, rjust, ljust, zfill

字符串.center(长度,填充字符),例如:'abc'.center(7, 'x') ->  'xxabcxx'
字符串.rjust(长度,填充字符),例如:'abc'.rjust(7, 'x')  ->  'xxxxabc'
字符串.ljust(长度,填充字符),例如:'abc'.ljust(7, 'x')  -> 'abcxxxx'
字符串.zfill(长度) == 字符串.rjust(长度,'0'),例如:'abc'.zfill(7) -> '0000abc'

2. count

字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数
字符串1.count(字符串2,开始下标,结束下标) - 在开始下标到结束下标(取不到)对应的范围内统计字符串2出现的次数
str1 = 'how are you? i am fine, thank you! and you?'
print(str1.count('a'))        # 4
print(str1.count('you'))      # 3
print(str1.count('a', 0, 12))   # 1

3. find、index

字符串1.find(字符串2)     -   获取字符串1中字符串2第一次出现的位置,返回0开始的下标值;如果字符串2不存在返回-1
字符串1.index(字符串2)    -   获取字符串1中字符串2第一次出现的位置,返回0开始的下标值;如果字符串2不存在,结果报错
字符串1.find(字符串2,开始下标,结束下标)、字符串1.index(字符串2,开始下标,结束下标)
str1 = 'how are you? i am fine, thank you! and you?'
print(str1.find('you'))    # 8
print(str1.index('you'))   # 8

print(str1.find('you1'))   # -1
# print(str1.index('you1'))    报错

print(str1.find('you', -20, -1))   # 30

4. isdigit、isnumeric

字符串.isdigit() - 判断是否是纯数字字符串(数字指-~9的数字字符)
字符串.isnumeric() - 判断是否是纯数字字符串(数字指具有数字以以的字符)
print('1313123123'.isdigit())   # True
print('2323323'.isnumeric())    # True
print('23数'.isnumeric())       # False
print('23一十二'.isnumeric())    # True
print('Ⅴ'.isnumeric())         # True

5. islower, isupper

字符串1.islower()    -  判断字符串是否是纯小写字母字符串
字符.islower()       -  判断是否是小写字母

字符串1.isupper()   -  判断字符串是否是纯大写字母字符串
字符.isupper()      -  判断是否是大写字母
print('a'.islower())    # True
print('abcbcbcbcc'.islower())     # True
print('acbABBC'.islower())       # False
print('ABC'.isupper())            # True

6. join

字符串.join(序列)   - 将序列中的元素用指定的字符串拼接成一个新的字符串
注意:序列中的元素必须是字符串
result = '+'.join('abc')
print(result)             # a+b+c


result = '❤'.join('我爱你')
print(result)           # 我❤爱❤你
# 练习:将下面列表中的元素合并成一个字符串
list1 = ['abc', 100, 12.5, True, 'hello']
result = ''.join(str(x) for x in list1)
print(result)

for x in list1:
    result = ''.join(str(x))
    print(result, end='')
print()
# 练习2:已经一个列表保存多个学生的分数,提取所有学生的姓名,以一个字符串的形式返回
# [{'name':'张三', 'age': 18}, {'name':'小明', 'age': 20}, {'name':'小花', 'age': 30}]  -> '张三,小明,小花'

students = [{'name':'张三', 'age': 18}, {'name':'小明', 'age': 20}, {'name':'小花', 'age': 30}]
result = ','.join(x['name'] for x in students)
print(result)

7. strip、lstrip、rstrip

字符串.strip()  -  去掉字符串两端的空白字符
字符串.lstrip()  -  去掉字符串前面的空白字符
字符串.rstrip()  -  去掉字符串后面的空白字符
str1 = '      \tabc  123     \n'
result = str1.strip()
print('===', result, '====', sep='')

result = str1.lstrip()
print('===', result, '====', sep='')

result = str1.rstrip()
print('===', result, '====', sep='')

8. replace

字符串1.replace(字符串2,字符串3)   -  将字符串1中所有的字符串2替换成字符串3
字符串1.replace(字符串2,字符串3, N)  -  替换前N个
str1 = 'how are you? i am fine, thank you! and you?'
result = str1.replace('you', 'me')
print(result)  # how are me? i am fine, thank me! and me?

result = str1.replace('you', 'me', 1)
print(result)  # how are me? i am fine, thank you! and you?

9. maketrans, translate

str.maketrans('字符串1, 字符串2) -  创建一张字符串1和字符串2的字符对应表
字符串.translate()
table = str.maketrans('ain', '你我他')
str1 = 'how are you? i am fine, thank you! and you?'
result = str1.translate(table)
print(result)
# 练习:将字符串中所有的阿拉伯数字都替换成对应的中文数字
table1 = str.maketrans('0123456789', '零一二三四五六七八九')
str2 = '123木头人,88'
result1 = str2.translate(table1)
print(result1)

10. rfind、rindex

str1 = 'how are you? i am fine, thank you! and you?'
print(str1.find('you'))   # 8
print(str1.rfind('you'))  # 39

11. split

字符串1.split(字符串2)  -  将字符串1中所有的字符串2作为切割点对字符串进行切割 

注意:如果切割点在最前面或者最后面或者出现连续的切割点,结果会出现空串

str1 = 'abc1abc1abc1bbc1bba1abc1bbc1'
result = str1.split('1')
print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值