# 1.生成50-300之间可重复的 10个数据 存放于列表中, 保证列表中元素的顺序,对列表进行排重,并对列表使用**排序算法**进行降序排序
import random
list = random.choices(range(50,301),K=10) # 随机获取50-300中10个数据
new_list = []
for i in list:
if i not in new_list:
new_list.append(i)
print(new_list)
for x in range(1,len(new_list)):
for y in range(0,len(new_list)-x):
if new_list[y]>new_list[y+1]:
new_list[y],new_list[y+1]=new_list[y+1],new_list[y] # 交换大小
print(new_list)
# 2.用列表推导式, 完成以下需求
# 1. 生成一个存放1-100中各位数为3的数据列表
# 2. 利用列表推到是将列表中的整数提取出来 .
# 例如:[True, 17, "hello", "bye", 98, 34, 21] --- [17, 98, 34, 21]
num =[i for i in range(3,101,10)]
print(num)
# 运行结果:[3, 13, 23, 33, 43, 53, 63, 73, 83, 93]
list =[True, 17, "hello", "bye", 98, 34, 21]
list1=[i for i in list if type(i)== int] #利用查看类型解决问题
print(list1)
# 运行结果:[17, 98, 34, 21]
# 3.获取列表中出现次数最多的元素
# 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:[3]
# 例如:nums = [1, 2, 2, 3, 3] —> 打印:[2, 3]
nums = [1, 2, 3,1,4,2,1,3,7,3,3,1]
count = 0
num_list=[]
for i in nums:
if nums.count(i) > count:
count =nums.count(i)
num_list.clear() # 有新的最大次数,就清空之前的列表
num_list.append(i)
elif nums.count(i) == count and i not in num_list:
num_list.append(i)
print(num_list)
# 运行结果:[1,3]
字符串
作用:传递信息
字符串表达式:使用单引号,双引号引起来的一串符号
字符串的性质:
1.有序的(有下标,有切片)
2.字符串不可变(没有增删改),需要新建字符串
3.字符串的容器符号,‘’ 、‘’‘’ 、‘’‘’‘’‘’;类型:str
4.字符串分类:普通字符串、转义字符串、原始字符串
一、转义字符串
有特殊含义的符号, + 特定符号表示有特俗意义的符号
+指定符号可以使有特殊含义的符号变成其本身
可以让没有特殊含义的符号变得有特殊意义
print('abtcncd') # ab c
print("ab'cd") # cd
print('ab'cd') # ab'cd
print('ab\tcd') # abtcd
二、原始字符串
在字符串前面添加R或者r,能够将字符串中的转义字符变成其本身
print('12t34') # 12 34
print(r'12t34') # 12t34
print(len(r't'),len('t')) # 2 1
字符串的运算
1.字符串的拼接,得到新的字符串对象
2.字符串的重复
3.字符串的比较大小
a.比较第一对不相同元素的大小(编码值)
b.使用的是万国码比较大小,unicode
4.chr() -能够将进制转换成对应的符号
5.ord()-能够将符号转换成十进制
hex()-能够将进制转换成十六进制
oct()- 能够将进制转换成八进制
6.字符串的成员运算:in 、not in
print('ab' + 'cd')
print('*' * 20)
print('ab' > 'c')
print('ab。'>'abc')
print('a' in 'asc')
**0-9 对应的范围 :48-57 **
A-Z对应的范围:65-90
a-z对应的范围:97-122
**所有的中文对应范围:u4e00-u9fa5(19968-40869) **
二进制:0bXXX
十六进制:0x
八进制:0o
下标和切片和列表操作相同
str[M:N:a]
回车键代表一个n,长度为1。可以通过鼠标观察pycharm右下角定位下标
通过在符号前用回车进行完整类型的换行
字符串的遍历(循环)1.直接遍历
str1 = '王者荣耀'
# 直接遍历
for i in str1:
print(i)
2.间接遍历
str1 = '王者荣耀'
for i in range(len(str1)):
print(str1[i])
# 获取”王”、“荣“
for i in range(0, len(str1), 2):
print(str1[i])
#练习 ”abcderf" ->"ABCDERF" 相对应的大小写相差32 chr(ord(i) - 32) 小写转大写
num = 97
Num = 65
str1 = "abcderf"
str2 = ""
for i in str1:
str2 += ((chr(ord(i) - 32)))
print(str2)
# 运行结果:ABCDERF
字符串的方法和函数
# upper() --小写字母转大写字母
print('abcANC32'.upper())
# lower() - 大写字母转小写字母
print('abcANC32'.lower())
# capitalize() -将字符串中首字母转大写,必须是以字母开头的字符串
print('abnmAF;.b'.capitalize())
# title() -将字符串中所有连续英文字母的子串首字母转大写
print('abnmAF;.b'.title())
# split() -切割,以指定符号为切割点,将切割点左右字符串分开,并保存到“列表”中,会保存到一个新列表中
result1 ='1,2,3,'.split(',')
print(result1) #运行结果:['1', '2', '3', '']
print('3'+''=='3') # 加上一个空字符串,结果不做改变
# join() -将一个所有元素均为字符串序列(容器)中的所有元素以指定符号拼接起来
result2=','.join(result1)
print(result2)
# strip() -默认去掉字符串头尾的空符号(空格、n,t等),也可以指定去除的符号
print('abc*'.strip('*')) # ( )里指定去除的符号
# replace('old_str','new_old') -替换,将一个字符串中全部old_srt替换成new_str
# replace('old_str','new_old',次数) -替换,将一个字符串中指定数量old_srt替换成new_str
str1 =',1,2,3'
print(str1.replace(',', '')) # 将所有的','用''替换
print(str1.replace(',', '',2)) # 将前面2次的','用''替换



