python字符串操作
- replace方法 字符串替换,第三个参数没有则会全部替换
#replace
name = 'hello world haha'
new_name = name.replace('ha', 'Ha', 1)
print(new_name)
输出

image.png
- split方法 字符串分割,后面的参数表示识别多少次
#split 字符串分割,带参数数字标示分几次,
# 后面符合条件的条件不管了
name = 'hello world ha ha'
name_list = name.split(" ")
print(name_list)
name_list1 = name.split(" ", 2)
print(name_list1)
输出
- capitalize方法 大写字符串首字母
#大写字符串的第一个字符
my_str = 'hello world neuedu'
my_str2 = my_str.capitalize()
print(my_str2)
输出

image.png
- title方法 大写每个单词的首字母
#大写每个单词的第一个字母
my_str3 = my_str.title()
print(my_str3)
输出

image.png
- startwith方法 boolean判断,字符串是否以某开头
#startwith boolean判断,字符串是否以某开头
my_str4 = my_str.startswith('hello')
print(my_str4)
输出

image.png
- endswith方法 boolean判断,字符串是否以某结尾
#endswith boolean判断,字符串是否以某结尾
my_str6 = my_str.endswith('cpp')
print(my_str6)
输出

image.png
- upper方法 把字符串所有转换成大写
#upper 把字符串所有转换成大写
my_str7 = my_str.upper()
print(my_str7)
输出

image.png
- lower 把字符串所有转换成小写
#lower 把字符串所有转换成小写
my_str8 = my_str7.lower()
print(my_str8)
输出

image.png
- rjust方法 返回原字符串的右对齐,并用空格填充使返回width长度的新字符串
#rjust方法 返回原字符串的右对齐,并用空格填充
#使返回width长度的新字符串
my_str_space = 'hello'
new_my_str_space = my_str_space.rjust(10)
print(new_my_str_space)
输出
ps:···后加pyrhon可以python高亮
- ljust方法 返回原字符串的左对齐,并用空格填充右侧
#ljust方法 返回原字符串的左对齐,并用空格填充
#使返回width长度的新字符串
new_my_str_space1 = my_str_space.ljust(100)
print(len(new_my_str_space1))
print(new_my_str_space1)
输出
- center方法 在中间两边加空格
#center() 22,23+5 = 50
new_my_str_space2 = my_str_space.center(50)
print(len(new_my_str_space2))
print(new_my_str_space2)
输出
- rstrip方法 去除右边空格
#rstrip 去除右边的空格
new_str3 = new_str2.rstrip()
print(len(new_str3))
print(new_str3)
输出
- strip方法 去除两端空格
#strip 去除两端的空格
print(len(new_my_str_space2))
new_str4 = new_my_str_space2.strip()
print(len(new_str4))
print(new_str4)
输出

#\t制表 \n空格 去除的时候都算空格,占一个长度
str1 = '\n\tdadadad\t'
- rfind方法 右侧开始查找
#rfind
index5 = my_str.rfind('neuedu')
print(index5)

image.png
- partition方法 把mystr分成以str分割成三步分
前,str,后
#partition把mystr分成以str分割成三步分
#前,str,后
print(my_str)
t_mystr = my_str.partition('neuedu')
print(t_mystr)#元组,前面一部分,后面一部分
输出
- rpartition方法
- splitlines方法 按照行分割,返回一个包含各行作为元素的列表
#splitlines 按照行分割,返回一个包含各行
#作为元素的列表
line = 'hello\nworld'
print(line)
list_line = line.splitlines()
print(list_line)
输出
- isalpha方法 字母,判断字符串是否都是字母组成的
#isalpha 字母,判断字符串是否都是字母组成的
alpha = my_str.isalpha()
print(alpha)
alpha2 = 'dddd'
alpha3 = alpha2.isalpha()
print(alpha3)
输出
- isdigit方法 判断字符串是否都是数字组成的
- isalnum方法 判断是否只有字母和数字
- isspace方法 判断只有空格
- join方法 列表转字符串
#join 列表转字符串
str4 = ' '
list1 = ['my', 'name', 'is', 'suntong']
my_name = str4.join(list1)
print(my_name)
my_name1 = "_".join(list1)
print(my_name1)
输出
- 常用的find replace split join strip
列表用法
#价值一个亿的ai核心代码
while True:
print('AI说: '+input().strip('吗?')+'!')
- 列表
列表和数组很像,但list可以存储不同类型的数据
name_list = ['鲁班', 'xiaoming', 1024]
print(name_list)
print(type(name_list))
- 访问
#访问
# print(name_list[0])
- 遍历
#遍历
for x in name_list:
print(x)
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
- 添加
str = input('请输入内容')
name_list.append(str)
print(name_list)
list1 = []
for i in range(10):
list1.append(i)
print(list1)
- insert
#insert 在指定位置index前插入元素,元素object
a = [0, 1, 2]
a.insert(1, 10)
print(a)
- extend
#extend 将另外一个集合中添加到列表中
a = [1, 2]
b = [3, 4]
a.append(b)
print(a)
a.extend(b)
print(a)
- update 修改
#修改 update
name_list[1] = '小明'
print(name_list)
- in notin 查找
find_name = '小明'
if find_name not in name_list:
print('小明在吃屎')
else:
print('小明不在吃屎')
- count 计数
#index count
a = ['a', 'b', 'c', 'a', 'd']
index1 = a.index('c', 1, 3)#作弊有开
print(index1)
counts = a.count('b')
print(counts)
- del 下标删除
#del:根据下标进行删除
del name_list[0]
print('删除后', name_list)
- pop 删除最后一个元素
#pop:删除最后一个元素
name_list.pop()
print('删除后', name_list)
- remove 根据元素的值进行删除
#remove:根据元素的值进行删除
name_list.remove('小明')
print('删除后', name_list)
- 列表的排序
.sort(),括号中参数不加是从小到大,加了reverse=True就是从大到小
#from 模块名字 import name1,name2
from random import randint
# num = randint(-10, 10)
num_list = []
for _ in range(10):
num_list.append(randint(1, 20))
print(num_list)
num_list.sort()
print(num_list)
num_list.sort(reverse=True)
print(num_list)
- .sort和sorted
#.sort对原来的列表进行修改排序,sorted()返回新的
# 原来的没有改变
#.sort属于列表的成员方法,sorted对所有可迭代的对象进行操作
# 调用形式不一样
new_list = sorted(num_list)
print(num_list)
print(new_list)
- 字符串的常用操作
#字符串的常用操作
print(dir(''))
print(dir([]))
输出
- 列表的嵌套
#列表的嵌套 列表里面还有列表
school_name = [['qinghua', 'beida'], ['nankai', 'tianda'], ['dq', 'yanda']]
print(school_name)
print(school_name[0][1])
print('++++++++')
print(school_name[0, 1])
输出
- 列表推导式
#列表推导式
list1 = []
for i in range(10):
list1.append(i)
print(list1)
from random import randint
list2 = [i for i in range(10)]
print(list2)
list3 = ["不给鲁班就送" for _ in range(5)]
print(list3)
输出
加入if判断
from random import randint
#生成10个元素,范围在[-10,10]区间的列表
l = [randint(-10, 10) for _ in range(10)]
print(l)
#选出大于等于0的数据
res = []
for x in l:
if x >= 0:
res.append(x)
print(res)
#循环的过程中使用if
res2 = [x for x in l if x >= 0]
print(res2)
#列表转化成字符串
my_list = ['welcome', 'to', 'ML', 'world']
my = str(my_list)
print(my)
print(' '.join(my_list))
str1 = 'hehe'*3
print(str1)
list4 = ['6', 9, 0, 3, 14]*5
print(list4)
number = [i for i in range(11)]
print(number)
a = []
#筛选出偶数数据
for i in range(11):
if i % 2 == 0:
a.append(i)
print(a)
b = [x for x in range(11) if x % 2 == 0]
print(b)
- 列表案例
随机分配8个人到3个办公室
import string
from random import randint
#import random
#使用时麻烦
#定义三个办公室
office = [[], [], []]
#生成8个字母代表老师
names = string.ascii_uppercase[:8]
#转换为列表
names = list(names)
print(names)
for name in names:
#产生一个随机数[0,2]
index = randint(0, 2)
office[index].append(name)
print(office)
i=1
for tempNames in office:
print('办公是{}人数为{}'.format(i, len(tempNames)))
i += 1
for name in tempNames:
print('{}'.format(name), end='')
print('-'*30)
元组用法
- 访问
#元组 tuple
a = ('ddd', 111, 0.88)
print(type(a))
#序列:列表,字符串,元组
#访问
print(a[0])
- 不能修改
#不能修改
# a[1] = 99.9
- index和count
# a = ('a', 'b', 'c', 'b', 'a')
# index1 = a.index('a')
# print(index1)
# c = a.count('b')
# print(c)
- 单个元组定义方法
#单个元素的元组,为了避免奇异
b = (100,)*3
print(b)
print(type(b))
输出

image.png
- 两个列表打包成元组
#同时便利两个列表,zip()用于将可迭代的对象作为
#参数,将对象中的对应元素打包成一个元祖
#返回这些元祖对象 节约内存
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b)
print(zipped)
print(list(zipped))
#长度不一致,与最短的对象相同
zipped1 = zip(a, c)
print(list(zipped1))
输出
- 遍历两个列表
heros = ['后羿', '安其拉']
skills = ['惩戒之贱', '烤串']
for hero, skill in zip(heros, skills):
print(hero, '--->', skill)
输出
字典用法
- 定义
# 字典 key - value
info = {'name': '刘强东', 'age': 45, 'id': 23254321513, 'addr': '北京'}
- 访问
#访问 根据 键进行访问
print(type(info))
print(info['name'])
#访问不存在的会报错
# print(info['sex'])
age = info.get('age')
print(age)
#访问不存在返回None
# print(info['sex'])
#党我们不确定是否存在某个key时,还要获得值,
#可以使用get方法,设置默认值等
mail = info.get('mail', '[email protected]')
age = info.get('age', 20)
print(mail)
print(age)
- 修改
#修改 根据key修改
info['name'] = '马云'
print(info)
- 添加
#添加
info['sex'] = '男'
print('添加后', info)
- 删除 del pop clear
#删除 del根据key删除
del info['name']
print('删除后', info)
# #全删未定义错误
# del info
# print('删除后', info)
#clear 空字典,不报错
# info.clear()
# print('清楚后', info)
#常用操作
#len,k-y的个数
print(len(info))
#所有key
keys = info.keys()
print(keys)
#所有value
values = info.values()
print(values)
#所有items
items = info.items()
print(items)
for key, value in info.items():
print(key, '---->', value)
集合
- 定义
# 集合 无需、唯一
#一般用于元祖或者列表去重
set1 = {1, 2, 5, 4, 3}
print(type(set1))
- 添加
#添加
set1.add(8)
print(set1)
- 删除 不存在会报错remove pop discard
#删除 不存在回报错
set1.remove(1)
print(set1)
#pop随机删除
set1.pop()
print(set1)
#discard 存在直接删除,不存在不做任何操作
set1.discard(2)
print(set1)
解析
- 字典解析
#班级分数
from random import randint
grades = {'Student{}'.format(i):randint(50, 100) for i in range(1, 21)}
print(grades)
#山旋出高于90分的人
d = {k: v for k, v in grades.items() if v >= 90}
print(len(d))
print(d)
- 集合解析
#集合解析
set1 = {randint(0, 20) for _ in range(20)}
print(set1)
res = {x for x in set1 if x % 3 == 0}
print(res)
终端交互
函数
三下双引号然后回车就可以添加函数注释说明文档
# def 函数名(num):
# pass
def caculateNum(num):
"""
计算1到num之间的累加和
:param num: 累加和的最后一位
:return: 累加和
"""
res = 0
for i in range(1, num+1):
res += i
return res
res = caculateNum(100)
print(res)