python中冒泡排序和字符串(六)

一、冒泡排序

##前言

时间复杂度
空间复杂度
时间换空间,空间换时间,时间和空间总是趋于平衡
算法:作用:优化程序

1.性质

1.一趟排序能够找出参与本躺排序的元素的最大值。
2.本躺排序找出的最大值不参与下一趟排序。
3.总的排序趟数等于总的元素个数减1.
4.每一趟排序的比较次数为参与排序的元素个数减1.

numList = [10, 55, 0, -10, 68, 99]
# 控制循环趟数,同时还能控制本躺排序参与的元素个数
for i in range(1, len(numList)):
    print(f'这是第{i}趟排序,排序开始前列表为{numList}')
    # 提取两个元素比较大小
    for j in range(len(numList) - i):
        if numList[j] > numList[j + 1]:
            numList[j],numList[j + 1] = numList[j + 1],numList[j]
            print(f'第{j + 1}次排序后的结果为{numList}')
print(numList)

#二、字符串

什么是字符串:有引号包围的一串有限个的符号的组合。
人类自然语言中字符串可以作为一串文本。

字符串性质:

1.字符串是有序的。(下标,每个元素有自己的固定位置)
2.字符串不可变的。(没有增删改)
3.只要放入字符串的引号里面,任何数据都会编程没有意义的符号。
4.字符串的容器符号:‘’ 、“”、“”“”“”
5.字符串的数据类型:str

三、字符串的组成

转义字符、原始字符串、一般字符串

四、字符串的拼接和重复

str1 = '1234'
str2 = 'abcd'
print(str1 + str2)

五、成员运算:in、 not in

子串:字符串中所有单个的符号或连续的N个符号都是这个字符串的子串

print('abc' in 'abcd')
print('abc' not in 'abcd')

六、比较大小

print('abc' > '123')
print('abc' > 'abd')

字符串比较大小的是第一对不相同的ASCII编码的大小
ASCII码表中符号列涉及的符号均为字符
0-9对应的十进制为:48~57
A-Z对应的十进制为:65-90
a-z对应的十进制为97-122

python使用的Unicode编码表,Unicode编码表又叫万国码,emoji表情符号包含Unicode编码表中。4
Unicode 编码表是在ASCII码表基础上的拓展。
中文范围:\u4e00~\u9fa5 (19968 40869)

#七、ord()、chr()

chr():将数值再转换为对应的符号
ord():将编码表中的符号转换为十进制。

print(ord('0'), chr(48))
print(ord('\u4e00'), ord('\u9fa5'))
# for i in range(19968,40870):
#     print(chr(i), end='')

# 字符串的遍历
# 直接遍历
str1 = 'abcde'
for i in str1:
    print(i)

# 间接遍历
for index in range(len(str1)):
    print(f'下标{index}对应元素为{str1[index]}')

# 字符串的下标和切片 等同于 列表的下标和切片!!!
# 字符串的下标和切片 等同于 列表的下标和切片!!!
# 字符串的下标和切片 等同于 列表的下标和切片!!!、

练习:
将’abcABC’转换为’ABCabc’

str3 = 'abdABC'
str2 = ''
for i in str3:
    if 'A' <= i <= 'Z':
        str2 += chr(ord(i) + 32)
    else:
        str2 += chr(ord(i) - 32)
print(str2,str2 == 'ABCabc')

字符串A + 空字符串 等于 字符串本身
lower:将字符串转小写
upper:将字符串转大写

str1 = 'abcABC'
print(str1.lower())
print(str1.upper())

str2 = 'abc123abc'
# title:将字符串中所有的单词(人工智障)首字母转大写
print(str2.title())

# capitalize():如果第一个字符串是小写字母,将其转大写,
str2.capitalize()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值