f = “”"I
am TOM"“”
print(type(f))
print(f)
I’m TOM
c = “I’m TOM”
print©
print(type©)
d = ‘I’m TOM’
d = ‘I’m TOM’
print(d)
print(type(d))
字符串特征
1.格式化操作符
2.f-strings
print(“hello world”)
name = ‘ROSE’
我的名字是TOM
print(‘我的名字是%s’ % name)
print(f’我的名字是{name}')
输入密码
password = input(‘请输入您的密码:’)
print(f’您输入的密码是{password}')
print(type(password))
1.下标索引
所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
str1 = ‘abcdefg’
print(str1)
数据在程序运行过程中存储在内存
? 得到数据a字符, 得到数据b字符 – 使用字符串中某个特定的数据
这些字符数据从0开始顺序分配一个编号 – 使用这个编号精确找到某个字符数据 – 下标或索引或索引值
str1[下标]
print(str1[0])
print(str1[1])
2.切片
str1 = ‘abcdefg’
得到整个字符串数据
print(str1)
下标得到的是下标为某个数字的数据
print(str1[2])
得到abc 这3个数据该怎么办
序列名[开始位置的下标:结束位置的下标:步长]
str1 = ‘012345678’
print(str1[2:5:1]) # 234
print(str1[2:5:2]) # 24
print(str1[2:5]) # 234
print(str1[:5]) # 01234 – 如果不写开始,默认从0开始选取
print(str1[2:]) # 2345678 – 如果不写结束,表示选取到最后
print(str1[:]) # 012345678 – 如果不写开始和结束,表示选取所有
负数测试
print(str1[::-1]) # 876543210 – 如果步长为负数,表示倒叙选取
print(str1[-4:-1]) # 567 – 下标-1表示最后一个数据,依次向前类推
终极测试
print(str1[-4👎1]) # 567
print(str1[-4👎-1]) # 不能选取出数据:从-4开始到-1结束,选取方向为从左到右,但是-1步长:从右向左选取
**** 如果选取方向(下标开始到结束的方向) 和 步长的方向冲突,则无法选取数据
print(str1[-1:-4:-1]) # 876
3.想一想
(面试题)给定一个字符串aStr, 请反转字符串
如有字符串mystr = ‘hello world itcast and itcastcpp’,以下是常见的操作
mystr = “hello world and itcast and itheima and Python”
1. find()
print(mystr.find(‘and’)) # 12
print(mystr.find(‘and’, 15, 30)) # 23
print(mystr.find(‘ands’)) # -1 , ands子串不存在
2.index()
print(mystr.index(‘and’)) # 12
print(mystr.index(‘and’, 15, 30)) # 23
print(mystr.index(‘ands’)) # 如果index查找子串不存在,报错
3.count()
print(mystr.count(‘and’, 15, 30))
print(mystr.count(‘and’)) # 3
print(mystr.count(‘ands’)) # 0
4.rfind()
print(mystr.rfind(‘and’))
print(mystr.rfind(‘ands’))
5.rindex()
print(mystr.rindex(‘and’))
print(mystr.rindex(‘ands’))
mystr = “hello world and itcast and itheima and Python”
1. replace() 把and换成he #** 说明replace函数有返回值,返回值是修改后的字符串
new_str = mystr.replace(‘and’, ‘he’)
new_str = mystr.replace(‘and’, ‘he’, 1)
替换次数如果超出子串出现的次数,表示替换所有这个子串
new_str = mystr.replace(‘and’, ‘he’, 10)
# print(mystr)
print(new_str)
***** 调用了replace函数后,发现原有字符串的数据并没有做到修改,修改后的数据是replace函数的返回值
— 说明 字符串是不可变数据类型
数据是否可以改变划分为 可变类型 和 不可变类型
2. split() – 分割,返回一个列表, 丢失分割字符
list1 = mystr.split(‘and’)
list1 = mystr.split(‘and’, 2)
print(list1)
3. join() – 合并列表里面的字符串数据为一个大字符串
mylist = [‘aa’, ‘bb’, ‘cc’]
# aa…bb…cc
new_str = ‘…’.join(mylist)
print(new_str)
mystr = “hello world and itcast and itheima and Python”
1. capitalize() 字符串首字母大写
new_str = mystr.capitalize()
2.title(): 字符串中每个单词首字母大写
new_str = mystr.title()
3. upper():小写转大写
new_str = mystr.upper()
4. lower(): 大写转小写
new_str = mystr.lower()
print(new_str)
mystr = " hello world and itcast and itheima and Python "
print(mystr)
1. lstrip(): 删除左侧空白字符
new_str = mystr.lstrip()
2. rstrip(): 删除右侧空白字符
new_str = mystr.rstrip()
3.strip():删除两侧空白字符
new_str = mystr.strip()
print(new_str)
mystr = “hello world and itcast and itheima and Python”
1. startswith(): 判断字符串是否以某个子串开头
print(mystr.startswith(‘hello’))
print(mystr.startswith(‘hel’))
print(mystr.startswith(‘hels’))
2. endswith(): 判断字符串是否以某个子串结尾
print(mystr.endswith(‘Python’))
print(mystr.endswith(‘Pythons’))
3. isalpha(): 字母
print(mystr.isalpha())
4. isdigit(): 数字
print(mystr.isdigit())
mystr1 = ‘12345’
print(mystr1.isdigit())
5. isalnum() : 数字或字母或组合
print(mystr1.isalnum())
print(mystr.isalnum())
mystr2 = ‘abc123’
print(mystr2.isalnum())
6.isspace(): 空白
print(mystr.isspace())
mystr3 = ’ ’
print(mystr3.isspace())
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
print(name_list)
print(name_list[1])
print(name_list[0])
print(name_list[2])
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
1. index()
print(name_list.index(‘TOM’))
print(name_list.index(‘TOMS’))
2. count()
print(name_list.count(‘TOM’))
print(name_list.count(‘TOMS’))
3.len()
print(len(name_list))
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
1. in
print(‘TOM’ in name_list)
print(‘TOMS’ in name_list)
2. not in
print(‘TOM’ not in name_list)
print(‘TOMs’ not in name_list)
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
需求:注册邮箱,用户输入一个账号名,判断这个账号名是否存在,如果存在,提示用户,否则提示可以注册
“”"
-
用户输入账号
-
判断if…else
“”"
name = input(‘请输入您的邮箱账号名:’)
if name in name_list:
提示用户名已经存在
print(f’您输入的名字是{name}, 此用户名已经存在’)
else:
提示可以注册
print(f’您输入的名字是{name}, 可以注册’)
列表中存放的数据是可以进行修改的,比如"增"、“删”、“改”、“查”
1.添加元素("增"append, extend, insert)
append
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
name_list.append(‘xiaoming’)
name_list.append([11, 22])
print(name_list)
1. 列表数据可改的 – 列表可变类型
2. append函数追加数据的时候如果数据是一个序列,追加整个序列到列表的结尾
extend
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
name_list.extend(‘xiaoming’)
name_list.extend([‘xiaoming’, ‘xiaohong’])
print(name_list)
extend() 追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾
insert
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
name_list.insert(下标, 数据)
name_list.insert(1, ‘aaa’)
print(name_list)
2.修改元素(“改”)
3.查找元素("查"in, not in, index, count)
所谓的查找,就是看看指定的元素是否存在
in, not in
index, count
下标
len():访问列表长度,即列表中数据的个数。
4.删除元素("删"del, pop, remove)
demo:(del)
demo:(pop)
demo:(remove)
demo:(clear)[清空列表]
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
1. del
del name_list
del(name_list)
del 可以删除指定下标的数据
del name_list[0]
print(name_list)
2. pop() – 删除指定下标的数据,如果不指定下标,默认删除最后一个数据,
无论是按照下标还是删除最后一个,pop函数都会返回这个被删除的数据
del_name = name_list.pop()
del_name = name_list.pop(1)
print(del_name)
print(name_list)
3. remove(数据)
name_list.remove(‘ROSE’)
print(name_list)
4. clear() – 清空
name_list.clear()
print(name_list)
5.排序(sort, reverse)
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
1. 修改指定下标的数据
name_list[0] = ‘aaa’
print(name_list)
2. 逆序 reverse()
list1 = [1, 3, 2, 5, 4, 6]
list1.reverse()
print(list1)
3. sort() 排序:升序(默认) 和 降序
list1.sort()
list1.sort(reverse=False)
list1.sort(reverse=True)
print(list1)
6.复制(copy)
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
list1 = name_list.copy()
print(list1)
print(name_list)
1.使用for循环
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
for i in name_list:
遍历序列中的数据
print(i)
2.使用while循环
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
‘’’
-
准备表示下标数据
-
循环while
条件 i < 3 len()
遍历:依次按顺序访问到序列的每一个数据
i += 1
‘’’
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
1.列表嵌套
name_list = [[‘TOM’, ‘Lily’, ‘Rose’], [‘张三’, ‘李四’, ‘王五’], [‘xiaohong’, ‘xiaoming’, ‘xiaolv’]]
print(name_list)
列表嵌套的时候的数据查询
print(name_list[0])
print(name_list[0][1])
2.应用
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
需求:8位老师,3个办公室, 将8位老师随机分配到3个办公室
“”"
步骤:
- 准备数据
1.1 8位老师 – 列表
1.2 3个办公室 - 列表嵌套
- 分配老师到办公室
*** 随机分配
就是把老师的名字写入到办公室列表 – 办公室列表追加老师名字数据
- 验证是否分配成功
打印办公室详细信息:每个办公室的人数和对应的老师名字
“”"
import random
1. 准备数据
teachers = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’]
offices = [[], [], []]
2. 分配老师到办公室 – 取到每个老师放到办公室列表 – 遍历老师列表数据
for name in teachers:
列表追加数据 – append(选中) extend insert
xx[0] – 不能指定是具体某个下标 – 随机
num = random.randint(0, 2)
offices[num].append(name)
print(num)
print(offices)
为了更贴合生活,把各个办公室子列表加一个办公室编号 1, 2, 3
i = 1
3. 验证是否分配成功
for office in offices:
打印办公室人数 – 子列表数据的个数 len()
print(f’办公室{i}的人数是{len(office)},老师分别是:')
打印老师的名字
print() – 每个子列表里面的名字个数不一定 – 遍历 – 子列表
for name in office:
print(name)
i += 1
t1 = (10, 20, 30)
print(t1)
print(type(t1))
1. 多个数据元组
t1 = (10, 20, 30)
print(type(t1))
2. 单个数据的元组
t2 = (10,)
print(type(t2))
3. 如果单个数据的元组不加逗号
t3 = (10)
print(type(t3)) # int
t4 = (‘aaa’)
print(type(t4)) # str
t5 = (‘aaa’,)
print(type(t5))
t1 = (‘aa’, ‘bb’, ‘cc’, ‘bb’)
1. 下标
print(t1[0])
2. index()
print(t1.index(‘bb’))
print(t1.index(‘bbb’))
3. count()
print(t1.count(‘aa’))
print(t1.count(‘aaa’))
4. len()
print(len(t1))
t1 = (‘aa’, ‘bb’, ‘cc’, ‘bb’)
t1[0] = ‘aaa’
t2 = (‘aa’, ‘bb’, [‘cc’, ‘dd’])
print(t2[2])
print(t2[2][0])
t2[2][0] = ‘TOM’
print(t2)
1.生活中的字典
2.软件开发中的字典
创建字典
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-geO12OYu-1712705797930)]