1.字符串是基本数据类型:
"字符串" '字符串' ''' 字符串 ''' str(字符串) #创建或者转换其他类型的字符串
a.获取长度:len(字符串)
b.字符串是一个有序的数列(sequence),也是一个可迭代对象,也有下标;
c.字符串[下标]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#某一个位置的字符
? ? ? ? 可以用枚举函数enumerate装饰获取字符串的下标和对应位置的字符;
? ? ? ? 格式:enumerate(可迭代对象)
注意:在cmd中进入python,用for循环的时候,也要注意格式规范!就比如说图中的print与for循环的位置!
2.? 字符串对象的常见方法和属性:
? ? ? ??capitalize? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#让返回的首字母大写;
? ? ? center? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #文本居中对齐
? ? ? ljust? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #左对齐
? ? ? rjust? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#右对齐
? ? ? ??count? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #统计字母的个数;
??startswith? ????????????????????????#以······开始(可以多个)
? ?index? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #返回改值对应的位置;
?? ?find?????????????????????????????????????#跟index相似;但是要注意,如果返回了负值,则证明该值不存在;
? ?rindex? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #找最右边的(最后一个)值
? ?rfind? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#找最右边的(最后一个)值
? ? ? 注意:没有lfind和lindex;
? ?format????????????????????????????????#格式化字符串是指将字符串中的占位符替换成指定变量的值,并将其输出到屏幕或者存储到文件中
? ?isalnum? ? ? ? ? ? ? ? ? ? ? #判断字符串是否由字母或数字组成;
? ?isalpha? ? ? ? ? ? ? ? ? ? ? ?#判断字符是否为英文字母
? ?isdecimal? ? ? ? ? ? ? ? ? ?#判断一个字符串是否只包含十进制数字
? ?isascii? ? ? ? ? ? ? ? ? ? ? ? #判断是否是由ascii组成
? ?isupper? ? ? ? ? ? ? ? ? ? ? #用来判断字符c是否为大写英文字母
? ?islower? ? ? ? ? ? ? ? ? ? ? #用来判断字符c是否为小写英文字母
? ?upper? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #文本字符串中的所有小写字母转换成大写字母
? ?lower? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #文本字符串中的所有小写字母转换成小写字母
? ?
? ??join? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#按特定形式将字符拼接
? ? split()????????????????????????????????#按特定形式分隔开
? ? rsplit从后向前分隔;
注意:join和split的使用格式是不同的!
????????????????"形式".join()
????????? ? ? ??s.split(" ")? ? ------? 以空格形式分隔开;?
? ? ?strip? ? ? ? ? ? ? ? ? ? ? ? #清除两侧空格;
? ? ?rstrip? ? ? ? ? ? ? ? ? ? ? ?#清除右侧空格;
? ? ?lstrip? ? ? ? ? ? ? ? ? ? ? ? #清除左侧空格;
?3.*ecode
? ? ? ecode是编码转换;将字符串转成字节;注意编码;---- 英文会正常出现,只有非英文的才会以字节的形式显现出来;图中的感叹号就是这样子,是中文下的状态,而不是英文状态下的!
? ? ? encode有两种形式,一种是utf-8,另一种是gbk;在python3.0中,默认为UTF-8!
4.decode
? ? ? ? 字节类型中的转换函数;
5.translate?
创建转换表?在使用translate()方法之前,我们首先需要创建一个转换表。转换表可以通过str.maketrans()方法来创建,它接受两个参数,分别是要被替换的字符和替换后的字符;
6.maketrans
是一个字符串方法,用于创建一个字符映射表;该函数接受两个参数,两个参数都必须是登场的字符串,其中第一个参数是被替换的字符,第二个参数是替换的字符;
7.切片操作:
? ? ? ? A.python提供的用来切割和分割有序数列的一种技术; ----? list tuple 字符串等等
? ? ? ? 切片操作是基于下标来进行分割的;
? ? ? ??B.其中切片操作也可以用于将元素逆序输出来!
? ? ? ? C.格式: 对象[num:]? ------? #返回num中第一个到最后一个的值;
? ? ? ? D.对象[num1:num2]? ------? ?#返回num1和num2的所有值;
? ? ? ? 注意:区间是前闭后开!
? ? ? ? E.对象{num1:num2:step]? ? ? ? ? ? -----------? ? ? ?step指步长;
?????? ?注意:其中0可以不写!默认为0开始;步长为3;
? ? ? ?F.将数组逆序输出来:
?
????????注意:当step步长等于-1的时候,说明是倒着切片;
8.python是支持负索引操作的!!!
思考:若用负索引的话,想要切最后一个单词,范围该怎么写呢?
2.排序:
? ? ? ? 数据排序,目的是让数据有序,有序的数据可以使用各种查找算法,实现快速查找!
A.冒泡排序
? ? ? ? 若有n个数据,最多比较n-1次!
例子:
def bubble_sort(nums:list) -> None: """ 冒泡排序 """ for i in range(len(nums) - 1): for j in range(len(nums) - 1 - i): if nums[j] > nums[j+1]: nums[j],nums[j+1] = nums[j+1],nums[j] nums = [1,9,2,5,7,6,8] print("排序前:",nums) bubble_sort(nums) print("排序后:",nums)
结果:
B.插入排序:
? ? ? ? 就是保证数是有序的,将后面无序的依次插入进来,在插入时也要保证有序性;
C.选择排序:
? ? ? ? 假设“第一个值”是最小值,就要每一轮找到真正的最小值,并且和假设的这个值交换;
D.二分查找:
? ? ? ? 有序的数列,二分就是将序列每次查找中间值,所以也被称为折半查找;