目录
一.字符串对象
'字符串' "字符串" '''字符串''' """字符串"""
str() #全局函数,可以将一个类型转化为字符串
len(字符串) #获取字符串的长度
while和for循环,遍历字符串
二.常见方法
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'
| -- capitalize() #第一个字符大写,其余字符小写
| -- center() #居中对齐
| -- ljust() #左对齐
| -- rjust() #右对齐
| -- replace() #替换
| -- translate() #使用给定的翻译表替换字符串中的每个字符
| -- maketrans() #返回str.translate()可用的翻译表(字典)
| -- count() #计数
| -- endswith() #是否以指定后缀结尾,返回布尔值
| -- startswith() #是否以指定前缀开头
| -- title() #将字符串每个单词的首字母大写
| -- find() #从左向右索引,失败时返回-1
| -- rfind() #从右向左索引,失败时返回-1
| -- index() #从左向右索引,从0开始
| -- reindex() #从右向左索引,从0开始
| -- format() #配合花括号进行字符串格式化
name = 'Tom'
age = 18
print('My name is {}, and I am {} years old.'.format(name, age))
#输出结果为:
#My name is Tom, and I am 18 years old.
| -- isdecimal() #判断字符串是否是十进制
| -- isdigit() #判断字符串是否是数字字符串
| -- islower() #判断字符串是否由小写字符串
| -- isupper() #判断字符串是否是大写字符串
| -- istitle() #判断字符串是否是标题(只能使用大写和大写字符)
| -- isalnum() #判断字符串是否由字母+数字组成
| -- isisalpha() #判断字符串是否由字母组成
| -- isascii() #判断字符串中的所有字符是否都是ASCII
| -- join() #拼接 例:".".join (['ab', 'pq', 'rs']) -> 'ab.pq.rs'
| -- split() #剪切
| -- lower() #转小写
| -- upper() #转大写
| -- strip() #去除字符串两侧空格
| -- rstrip() #去除字符串右侧空格
| -- lright() #去除字符串左侧空格
编码相关的方法:
| -- encode #编码,将字符串数据转化为字节数据,默认为utf-8
字节对象
| -- decode #解码,将字节数据转化为字符串数据
三.切片
切片是编程语言为有序序列(sequence)准备的,用来切割或者截取某个片段设计的一门技术
序列[num] #使用下标,获取对应下标的值
序列[num:] #从num下标开始截取[)
序列[start:end] #[start:end]的区间
序列[start:end:step] #步长
四.索引
1.正索引:从左向右读取序列,第一个值是0,第二个值是1……n
2.负索引:从右向读左取序列,第一个值是-1,第二个值是-2……-n
#判断一个字符串是否是回文
def is_pla(content):
left = 0
right = len(content) - 1
while left < len(content) // 2:
if content[left] != content[right -left]:
return False
left += 1
return True
print(is_pla("上海自来水来自海上"))
print(is_pla("123456789"))
五.常见的排序算法
在开发时,为了加速查询效率(各种查询算法,如二分查找等),首选需要将数据排成有序的数据
1.冒泡排序
两两比较找大数,算法稳定
main函数:用来书写测试的代码,这些代码不会导入到其他模块中
from typing import List
def bubble_sort(nums: List):
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]
return nums
if __name__ == '__main__':
nums = [40, 24, -2, 94, -43, -1 ,83]
nums = bubble_sort(nums)
print(nums)
2.选择排序
找小数,算法不稳定
from typing import List
# def select_sort(nums: List):
# for i in range(len(nums) - 1):
# #假设第一个值是最小值
# min = i
# for j in range(i + 1,len(nums)):
# if nums[j] < nums[min]:
# min = j
# if i != min:
# nums[i], nums[min] = nums[min], nums[i]
#简化版
def select_sort2(nums: List):
for i in range(len(nums) - 1):
for j in range(i + 1,len(nums)):
if nums[j] < nums[i]:
nums[i], nums[j] = nums[j], nums[i]
return nums
if __name__ == "__main__":
nums = [33, 52, 76, -3, -34]
select_sort2(nums)
print(nums)
3.插入排序
默认第一个值为一个有序的数列,之后依次插入后面每一个值
from typing import List
def insert_sort(nums: list):
for i in range(len(nums) - 1):
for j in range(i + 1, 0, -1):
if nums[j] < nums[j - 1]:
nums[j], nums[j - 1] = nums[j - 1],nums[j]
return nums
if __name__ == '__main__':
nums = [33, 41, -4, 42, 31]
insert_sort(nums)
print(nums)
六.二分查找
有序序列
from typing import List
def binary_search(nums: List, key: int):
left = 0
right = len(nums) - 1
while left <= right:
middle = ((right + left) >> 1)
if key == nums[middle]:
return middle
elif key > nums[middle]:
left = middle + 1
elif key < nums[middle]:
right = middle - 1
return -1
#递归法
def binary_search2(nums: List, key: int, start: int, end: int):
middle = (start + end) // 2
if start > end:
return -1
if nums[middle] == key:
return middle
elif key > nums[middle]:
return binary_search2(nums, key, middle + 1, end)
elif key < nums[middle]:
return binary_search2(nums, key, start, middle - 1)
if __name__ == '__main__':
nums = [1,2,3,5,66,89]
# print(binary_search(nums, 66))
print(binary_search2(nums, 66, 0,len(nums) - 1)))