Python教程

Python 从入门到项目实践学习笔记(二)

本文主要是介绍Python 从入门到项目实践学习笔记(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

声明:《Python 从入门到项目实践》7-章节 个人学习笔记

字符串

在Python开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理
比如拼接字符串、截取字符串、格式化字符串等

拼接字符串

在Python中,使用 “+” 号运算符可完成对多个字符串的拼接从而生成一个新的字符串对象

str1 = '人生苦短'
str2 = '我用Python'
print(str1 + str2)	# 人生苦短我用Python

在Python中,字符串不允许直接与其他类型的数据拼接,否则抛出异常

str3 = '计算机'
num = 1024
print(str3 + num)	# TypeError: unsupported operand type(s) for +: 'int' and 'str' 	

在Python中,可以通过将整数转换成字符串,然后再与字符串进行拼接

str3 = '计算机'
num = 1024
print(str3 + str(num))	# 计算机1024

计算字符串长度

在Python中,提供len()函数计算字符串的长度
通过len()函数计算字符串的长度时,不区分中文、英文和数字,所有字符都认为是一个

"""
语法格式:
    len(string)
参数说明:
    string:指定要进行长度统计的字符串
"""
str4 = '人生苦短,我用Python!'
print(len(str4))    # 14

截取字符串

在Python中,由于字符串也属于序列,所以要截取字符串,可以采用切片的方法实现

"""
语法格式:
    string[start : ent : step]
参数说明:
    string:表示要截取的字符串
    start:表示要截取的第一个字符串索引(包括该字符),默认为0
    end:表示要截取的最后一个字符串索引(不包括该字符),默认为字符串的长度
    step:步长,默认为1
"""
str5 = '人生苦短,我用Python!'
# 截取第一个字符
print(str5[1])      # 生
# 从第6个字符截取
print(str5[5:])     # 我用Python!
# 从左边开始截取5个字符
print(str5[:5])     # 人生苦短,
# 截取从第3个到第5个字符
print(str5[2:5])    # 苦短,  
# 指定的索引不存在,抛出异常
print(str5[15])    # IndexError: string index out of range

分割字符串

在Python中,字符串对象的split()方法可以实现对字符串分割
在使用split()方法时,如果不指定参数,默认采用空白符进行分割

"""
语法格式:
    str.split[sep, maxsplit]
参数说明:
    str:表示要进行分割的字符串
    sep:用于指定分隔符,可以是多个字符,默认为None
    maxsplit:可选参数,用于指定分割的次数
    返回值:分割后的字符串列表
"""
str6 = '人 生 苦 短, >>> 我用Python!'
# 采用默认分隔符进行分割
print(str6.split())         # ['人', '生', '苦', '短,', '>>>', '我用Python!']
# 通过 , 分割字符串
print(str6.split(','))      # ['人 生 苦 短', ' >>> 我用Python!']
# 通过多个字符进行分割
print(str6.split('>>>'))    # ['人 生 苦 短, ', ' 我用Python!']

检索字符串

在Python中,字符串对象提供了count()、find()、index()、startwith()、endwith()用于字符串查找

count()方法用于检索指定字符串在另外一个字符串出现的次数
如果检索的字符串不存在,则返回0;存在则返回出现的次数

"""
语法格式:
    str.count(sub [, start [, end ]])
参数说明:
    str:表示原字符串
    sub:表示要检索的子字符串
    start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索
    end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾
"""
# 检索 > 出现的次数
print(str7.count('>'))      # 3
# 检索不存在的情况
print(str7.count('KT'))     # 0		

find()方法用于检索是否包含指定的子字符串
如果检索的字符串不存在,则返回-1;如果包含则返回首次出现该子字符串时的索引

"""
语法格式:
    str.find(sub [, start [, end ]])
参数说明:
    str:表示原字符串
    sub:表示要检索的子字符串
    start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索
    end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾
"""
str8 = 'ABCDAABCD'
# 检索D的在字符串中首次出现的索引
print(str8.find('D'))   # 3
# 检索不存在的情况
print(str8.find('E'))   # -1

index()方法用于返回子字符串在原字符串中首次出现的位置索引
当指定的字符串不存在时会抛出异常

"""
语法格式:
    str.index(sub [, start [, end ]])
参数说明:
    str:表示原字符串
    sub:表示要检索的子字符串
    start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索
    end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾
"""
str9 = 'ABCDAABCD'
# 检索D的首次索引
print(str9.index('D'))   # 3
# 检索不存在的情况
print(str9.index('E'))   # ValueError: substring not found

startwith()方法用于检索字符串是否以指定字符串开头
如果是则返回True,否则返回False

"""
语法格式:
    str.startswith(perfix [, start [, end ]])
参数说明:
    str:表示原字符串
    perfix:表示要检索的子字符串
    start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索
    end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾
"""
str10 = 'ABCDAABCD'
# 检索D的首次索引
print(str10.startswith('A'))    # True
# 检索不存在的情况
print(str10.startswith('E'))    # False

endwith()方法用于检索字符串是否以指定字符串结尾
如果是则返回True,否则返回False

"""
语法格式:
    str.endswith(perfix [, start [, end ]])
参数说明:
    str:表示原字符串
    perfix:表示要检索的子字符串
    start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索
    end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾
"""
str10 = 'ABCDAABCD'
# 检索D的首次索引
print(str10.endswith('D'))    # True
# 检索不存在的情况
print(str10.endswith('E'))    # False

字母的大小写转换

在Python中,字符串对象提供了lower()和upper()方法进行字母的大小写转换

lower()方法用于将字符串中的大写字母转换为小写字母

"""
语法格式:
    str.lower()
参数说明:
    str:表示要进行转换的字符串
"""
str11 = 'ABCDAABCD'
# 将大写转成小写
print(str11.lower())    # abcdaabcd

upper()方法用于将字符串中的大写字母转换为小写字母

"""
语法格式:
    str.upper()
参数说明:
    str:表示要进行转换的字符串
"""
str12 = 'abcdaabcd'
# 将小写转成大写
print(str12.upper())    # ABCDAABCD

去除字符串中的空格和特殊字符

在Python中,字符串对应提供了strip()、rstrip()、lstrip()方法可以实现去掉字符串中的空格或特殊字符

strip()方法用于去掉字符串左、右两边的空格或特殊字符

"""
语法格式:
    str.strip([chars])
参数说明:
    str:表示要去掉空格或特殊字符的字符串
    chars:可选参数,用于指定要去除的字符
"""
str13 = ' abcdaabcd  '
# 去除字符串两侧空格
print(str13.strip())        # abcdaabcd
# 去掉字符串两侧的@
str14 = '@abcdaabcd@'
print(str14.strip('@'))     # abcdaabcd

rstrip()方法用于出掉字符串右侧的空格或特殊字符

"""
语法格式:
    str.rstrip([chars])
参数说明:
    str:表示要去掉空格或特殊字符的字符串
    chars:可选参数,用于指定要去除的字符
"""
str15 = 'abcdaabcd '
# 去除字符串右测的空格
print(str15.rstrip())        # abcdaabcd
# 去掉字符串右侧的@
str16 = '@abcdaabcd@'
print(str16.rstrip('@'))     # @abcdaabcd

lstrip()方法用于出掉字符串左侧的空格或特殊字符

"""
语法格式:
    str.lstrip([chars])
参数说明:
    str:表示要去掉空格或特殊字符的字符串
    chars:可选参数,用于指定要去除的字符
"""
str17 = ' abcdaabcd'
# 去除字符串左测的空格
print(str17.lstrip())        # abcdaabcd
# 去掉字符串左侧的@
str18 = '@abcdaabcd@'
print(str18.lstrip('@'))     # abcdaabcd@

格式化字符串

在Python中,可以使用"%"操作符或使用字符串对象的format()方法实现格式化字符串

使用 % 实现格式化字符串

"""
语法格式:
    '%[-][+][0][m][.n]格式化字符' %exp
参数说明:
    -: 可选参数, 用于指定左对齐(正数前方无负号,负数前方加负号)
    +:可选参数, 用于指定右对齐(正数前方无负号,负数前方加负号)
    0: 可选参数, 表示右对齐(正数前方元符号, 负数前方加负号; 用0填充空白处,一般与m参数配合使用)
    m: 可选参数, 表示占有宽度
    .n: 可选参数, 表示小数点后保留的位数
    格式化字符: 用于指定类型
    exp: 要转换的项; 如果要指定的项有多个, 以元组的形式进行指定
"""
# %s --> 字符串(采用str()显示)
print('%s笑哈哈' % 'BLL')      # BLL笑哈哈
# %c --> 单个字符, 否则报TypeError: %c requires int or char
print('%c笑哈哈' % 'L')        # L笑哈哈
# %d 或者 %i --> 十进制整数
print('%d, %i' % (4, 6))        # 4, 6
# %x --> 十六进制整数
print('%x' % 15)                # f
# %f 或者 %F --> 浮点数
print('%f, %F' % (17.5, 20))    # 17.500000, 20.000000
# %r --> 字符串(采用repr()显示)
print('%r笑哈哈' % 'BLL')      # 'BLL'笑哈哈
# %o --> 八进制
print('%o' % 15)                # 17
# %e --> 指数(基底为e)
print('%e' % 15)                # 1.500000e+01
# %E --> 指数(基底为E)
print('%E' % 15)                # 1.500000E+01
# %% --> 字符串%
print('%d%%' % 18)              # 18%

使用字符串对象的format()方法实现格式化字符串

在这里插入代码片

正则表达式基础

在处理字符串时,经常会有查询符合某些复杂规则的字符串的需求
正则表达式就是用于描述这些规则的工具;换句话来说,正则表达式就是记录文本规则的代码

行定位符

行定位符就是用来描述子串的边界。 “^” 表示行的开始;"$" 表示行的结尾

import re
"""
^C : 判断字符串以C开头(从字符串的左边第一个开始匹配)
"""

str1 = 'China is powerful'

print(re.findall('^C', str1))   # ['C']

"""
ul$ : 判断字符串以字母ul结尾(从字符串的右边第一个开始匹配)
"""

str2 = 'China is powerful'

print(re.findall('ul$', str2))  # ['ul']

元字符

除了上面介绍的 ^ 和 $ 外,正则表达式里还有更多的元字符

代码说明
.(点)匹配除换行符以外的任意字符
\w匹配字母、数字、下划线或汉字
\W匹配除字母、数字、下划线或汉字以外的字母
\s匹配单个的空白字符(包括Tab键和换行符)
\S除单个的空白字符(包括Tab键和换行符)以外的所有字符
\d匹配数字
\b匹配单词的开始或结尾(单词的分解符通常是空格、标点符号或换行符)

限定符

如果想要匹配特定数量的数字,正则表达式为我们提供了限定符(指定数量的字符)来实现该功能

未完待补充…

这篇关于Python 从入门到项目实践学习笔记(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!