导入random模块
import 模块名
使用random模块中的随机整数功能
random.randint(开始,结束)
random.randint(0,2)
“”"
提示:0-石头,1-剪刀,2-布
1.出拳
玩家输入出拳
电脑随机出拳
2.判断输赢
玩家获胜
平局
电脑获胜
“”"
导入random模块
import random
计算电脑出拳的随机数字
computer = random.randint(0, 2)
玩家出拳
player = int(input(“请玩家出拳: 0–石头,1–剪刀,2–布”))
玩家胜利 p0,c1 p1,c2 p2,c0
if((player0) and (computer1) or ((player1) and (computer2)) or ((player2) and (computer0))):
print(f"玩家出拳是{player}")
print(f"电脑出拳是{computer}")
print(“玩家获胜”)
elif player==computer:
print(f"玩家出拳是{player}")
print(f"电脑出拳是{computer}")
print(“平局”)
else:
print(f"玩家出拳是{player}")
print(f"电脑出拳是{computer}")
print(“电脑获胜”)
1.8.3、三目运算符
a = 1
b = 2
c = a if a>b else b
print©
条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
1.9.1、while
- 计算1-100的累加和
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(sum)
- 计算1-100的偶数累加和
①:可以加入判断是否为偶数,对2取余
方法一:条件判断和对2取余数为0则累加计算
i = 1
sum = 0
while i <= 100:
if i %2 ==0:
sum += i
i += 1
print(sum)
方法二:计数器控制增量为2
i = 0
sum = 0
while i <= 100:
sum += i
i += 2
print(sum)
1.9.2、break
- 作用:终止此循环
i = 1
while i <= 5:
if i ==4:
print(f’吃饱了不吃了’)
break
print(f’吃了第{i}个苹果’)
i +=1
1.9.3、continue
- 作用:退出当前一次循环继而执行下一次循环代码
i = 1
while i <= 5:
if i == 3:
print(f’大虫子,第{i}个不吃了’)
在 continue 之前一定要修改计数器,否则会陷入死循环
i += 1
continue # continue 退出此次循环,后面的代码就不会执行,i就不会+1
print(f’吃了第{i}个苹果’)
i +=1
1.9.4、while 循环嵌套
- 打印星号(正方形)
分析:一行输出5个星号,重复打印5行
“”"
1.打印一个星星*
2.一行5个 循环 — 打印一个星星的代码 ,不换行
3.打印5行 循环–一行五个的代码
“”"
j = 0
while j < 5:
一行星星开始
i = 0
while i< 5:
print(“*” , end=" ")
i += 1
#一行星星结束:换行显示下一行
#这里借助空的print,利用print默认结束符换行
print()
j += 1
- 打印星号(三角形)
分析:一行输出星星的个数和行数是相等的,每行:重复打印行号数字个星号,将打印行星号的命令重复执行5次实现打印5行
重复打印5行星星
j表示行号
j = 0
while j <=4:
一行星星的打印、
i = 0
i 表示每行里面星星的个数,这个数字要和行号相等所以 i要和j联动
while i<=j:
print(‘*’,end=‘’)
i +=1
print()
j +=1
- 打印99乘法表
重复打印9行表达式
j = 1
while j <= 9:
打印一行里面的表达式 a * b = a *b
i = 1
while i <= j:
print(f’{i}{j}={ji}‘,end=’\t’)
i +=1
print()
j +=1
1.9.5、for循环
for 临时变量 in 序列
重复执行的代码1
重复执行的代码2
…
str1 = ‘itheima’
for i in str1:
print(i)
#i
#t
#h
#e
#i
#m
#a
1.9.6、while…else…
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码。
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后执行的代码
i = 1
while i <= 5:
print(“老师,我错了!”)
i +=1
else:
print(“我何错之有?”)
所谓 else 指的是循环正常结束之后要执行的代码,即如果是 break 终止循环的情况,else 下方缩进的代码将不执行。
1.9.7、for…else…
for 临时变量 in 序列:
重复执行的代码
…
else:
循环正常结束后要执行的代码
所谓 else 指的是循环正常结束之后要执行的代码,即如果是 break 终止循环的情况,else 下方缩进的代码将不执行。
1.9.8、总结:
-
break退出整个循环
-
continue退出本次循环,继续执行下一次重复执行的代码
-
while 和 for 都可以配合else使用
-
else 下方缩进的代码含义:当循环正常结束后执行的代码
-
break终止循环不会执行else下方缩进的代码
-
continue 退出循环的方式执行else下方缩进的代码
=======================================================================
- 双引号,单引号均可修饰字符串
a = “TOM”
b = ‘tom’
- 三引号字符串
e=‘’'i
am TOM ‘’’
三引号形式的字符串支持换行
- 创建字符串:I’m Tom
c = “I’m Tom”
d = ‘I’m Tom’
- 字符串输出
print(‘hello world’)
name = ‘Tom’
print(‘我的名字是%s’ % name)
print(f’我的名字是{name}')
- 字符串
name="abcdef"
,取到不同下标对应的数据
name = “abcdef”
print(name[1]) # b
print(name[0]) # a
print(name[2]) # c
下标从 0 开始
作用:对操作对象截取其一部分的操作,字符串,列表,元组都支持切片操作
语法:
序列[开始位置下标:结束位置下标:步长]
-
不包含结束位置下标对应的数据,正负整数均可(即截取部分为左闭右开)
-
步长是选取间隔,正负整数均可,默认步长为1
name = “abcdefg”
print(name[2:5:1]) #cde
print(name[2:5]) #cde
print(name[:5]) #abcde
print(name[1:]) #abcdefg
print(name[:]) #abcdefg
print(name[::2]) #aceg
print(name[:-1]) #abcdef -1表示倒数第一个数据
print(name[-4:-1]) #def
print(name[::-1]) #gfedcba
字符串的常用操作方法有查找、修改和判断三大类
所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数
2.3.1、find()
find():检测某个字串是否包含在这个字符串中,如果在,返回这个字串开始的位置下标,否则返回-1
字符串序列.find(子串,开始位置下标,结束位置下标)
- 注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找
mystr =“hello world and itcast and itheima and python”
print(mystr.find(‘and’)) #返回12,helloworld为9,两个空格为2
print(mystr.find(‘and’,15,30)) #返回23,找到第二个’and’
print(mystr.find(‘ands’)) #返回-1,没有这个子串
2.3.2、index()
index():检测某个字串是否包含在这个字符串中,如果在返回这个字串开始的位置下标,否则报异常
字符串序列.index(子串,开始位置下标,结束位置下标)
- 注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找
mystr =“hello world and itcast and itheima and python”
print(mystr.index(‘and’)) #12
print(mystr.find(‘and’,15,30)) #返回23,找到第二个’and’
print(mystr.find(‘ands’)) #没有这个子串,报错
-
rfind():和find()功能相同,但查找方向从右侧开始
-
rindex():和index()功能相同,但查找方向从右侧开始
2.3.3、count()
count():返回某个子串在字符串中出现的次数
字符串序列.count(子串,开始位置下标,结束位置下标)
- 注意:开始位置和结束位置下标省略,表示在整个字符串中查找
mystr =“hello world and itcast and itheima and python”
print(mystr.count(‘and’)) #3
print(mystr.count(‘ands’)) #0
print(mystr.count(‘and’),0,20) #1
所谓修改字符串,指的是通过函数的形式修改字符串中的数据
2.4.1、replace() 替换
字符串序列.replace(旧子串,新子串,替换次数)
-
如果替换次数不写,默认替换整个字符串
-
replace函数有返回值,返回值是修改后的字符串
-
调用replace函数,原有字符串数据并没有修改,修改后的数据是replace函数的返回值
-
字符串属于不可变类型
-
替换次数如果超出子串出现次数,则替换次数为该子串出现次数
mystr =“hello world and itcast and itheima and python”
将 and 替换为 he
new_str=mystr.replace(‘and’,‘he’)
print(new_str)
结果:hello world he itcast he itheima he Python
print(mystr.replace(‘and’, ‘he’, 1))
结果:hello world he itcast and itheima and python
注意:数据按照是否能直接修改分为可变类型和不可变类型。字符串类型的数据修改的时候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。
2.4.2、split() 分割
按照指定字符分割字符串
字符串序列.split(分割字符,num)
num表示的是分割字符出现的次数,即将来返回数据个数为 num+1 个。
mystr =“hello world and itcast and itheima and python”
list1 = mystr.split(‘and’)
print(list)
#结果:['hello world ', ’ itcast ', ’ itheima ‘, ’ Python’]
list2 = mystr.split(‘and’,2)
print(list2)
结果:['hello world ', ’ itcast ‘, ’ itheima and Python’]
print(mystr.split(’ '))
结果:[‘hello’, ‘world’, ‘and’, ‘itcast’, ‘and’, ‘itheima’, ‘and’, ‘Python’]
print(mystr.split(’ ', 2))
结果:[‘hello’, ‘world’, ‘and itcast and itheima and Python’]
注意:如果分割字符是原有字符串中的子串,分割后则丢失该子串
2.4.3、join() 合并
join():⽤⼀个字符或子串合并字符串,即是将多个字符串合并为⼀个新的字符串。
字符或子串.join(多字符串组成的序列)
list1 = [‘chuan’, ‘zhi’, ‘bo’, ‘ke’]
print(‘_’.join(list1))
结果:chuan_zhi_bo_ke
t1 = (‘aa’, ‘b’, ‘cc’, ‘ddd’)
print(‘…’.join(t1))
结果:aa…b…cc…ddd
2.4.4、capitalize()
capitalize():将字符串第⼀个字符转换成⼤写。
mystr = “hello world and itcast and itheima and Python”
print(mystr.capitalize())
结果:Hello world and itcast and itheima and python
注意:capitalize()函数转换后,只字符串第⼀个字符⼤写,其他的字符全都⼩写
2.4.5、title()
title():将字符串每个单词首字母转换成大写。
mystr = “hello world and itcast and itheima and Python”
print(mystr.title())
结果:Hello World And Itcast And Itheima And Python
2.4.6、lower()
lower():将字符串中大写转小写。
mystr = “hello world and itcast and itheima and Python”
print(mystr.lower())
结果:hello world and itcast and itheima and python
2.4.7、upper()
upper():将字符串中小写转大写。
mystr = “hello world and itcast and itheima and Python”
print(mystr.upper())
HELLO WORLD AND ITCAST AND ITHEIMA AND PYTHON
2.4.8、lstrip()
lstrip(): 删除字符串左侧空白字符
mystr = " hello world and itcast and itheima and Python"
print(mystr.lstrip())
#结果:hello world and itcast and itheima and python
2.4.9、rstrip()
rstrip(): 删除字符串右侧空白字符
2.4.10、strip()
strip(): 删除字符串两侧空白字符
mystr = " hello world and itcast and itheima and Python "
print(mystr.strip())
#结果:hello world and itcast and itheima and Python
2.4.11、ljust()
ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
字符串序列.ljust(长度,填充字符)
mystr = ‘hello’
print(mystr.ljust(10))
hello
print(mystr.ljust(10,‘.’))
hello…
-
rjust(): 返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
-
center():返回一个原字符串剧中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False
2.5.1、startswith()
startswith(): 检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查
字符串序列.startswith(子串,开始位置的下标,结束位置的下标)
mystr = "hello world and itcast and itheima and Python "
print(mystr.startswith(‘hello’))
#结果为:True
print(mystr.startswith(‘hello’, 5, 20))
#结果为:False
2.5.2、endswith()
endswith():检查字符串是否是以指定子串结尾,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查。
mystr = “hello world and itcast and itheima and Python”
结果:True
print(mystr.endswith(‘Python’))
结果:False
print(mystr.endswith(‘python’))
结果:False
print(mystr.endswith(‘Python’, 2, 20))
2.5.3、isalpha()
isalpha():如果字符串⾄少有⼀个字符并且所有字符都是字母则返回 True, 否则返回 False
mystr1 = ‘hello’
mystr2 = ‘hello12345’
结果:True
print(mystr1.isalpha())
结果:False
print(mystr2.isalpha())
2.5.4、isdigit()
isdigit():如果字符串只包含数字则返回True否则返回False
mystr1 = ‘aaa12345’
mystr2 = ‘12345’
结果: False
print(mystr1.isdigit())
结果:False
print(mystr2.isdigit())
2.5.5、isalnum()
isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
mystr1 = ‘1 2 3 4 5’
mystr2 = ’ ’
结果:False
print(mystr1.isspace())
结果:True
print(mystr2.isspace())
======================================================================
格式:
[数据1,数据2,数据3,数据4…]
列表可以一次性存储多个数据,且可以为不同数据类型,我们可以对这些数据进行的操作有:增、删、改、查
3.1.1、通过下标
name_list = [‘Tom’,‘Lily’,‘Rose’]
print(name_list[0]) #Tom
print(name_list[1]) #Lily
print(name_list[2]) #Rose
3.1.2、通过函数
- index():返回指定数据所在位置的下标 。
列表序列.index(数据,开始位置下标,结束位置下标)
name_list = [‘Tom’,‘Lily’,‘Rose’]
print(name_list.index(‘Lily’,0,2)) #1
- 注意:如果查找的数据不存在则报错
- count(): 统计指定数据在当前列表中出现的次数
name_list = [‘Tom’,‘Lily’,‘Rose’]
print(name_list.count(‘Lily’)) #1
- len(): 访问列表长度,即列表中数据的个数
name_list = [‘Tom’,‘Lily’,‘Rose’]
print(len(name_list)) #3
3.1.3、判断是否存在
in: 判断指定数据在某个列表序列,如果在返回True,否则返回False
name_list = [‘Tom’,‘Lily’,‘Rose’]
print(‘Lily’ in name_list)
#结果: True
print(‘Lilys’ in name_list)
#结果: False
**not in:**判断指定数据不在某个列表序列,如果不在返回True,否则返回False
需求:查找用户输入的名字是否已经存在
name_list = [‘TOM’,‘Lily’,‘Rose’]
name = input(‘请输入您要搜索的名字:’)
if name in name_list:
print(f’您输入的名字是{name},名字已经存在’)
else:
print(f’您输入的名字是{name},名字不存在’)
3.2.1、append()
append(): 列表结尾追加数据
列表序列.append(数据)
name_list = [‘Ton’,‘Lily’,‘Rose’]
name_list.append(‘xiaoming’)
print(name_list)
结果:[‘Tom’, ‘Lily’, ‘Rose’, ‘xiaoming’]
列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据
name_list = [‘Ton’,‘Lily’,‘Rose’]
name_list.append([‘xiaoming’, ‘xiaohong’])
结果:[‘Tom’, ‘Lily’, ‘Rose’, [‘xiaoming’, ‘xiaohong’]]
print(name_list)
结果:[‘Tom’, ‘Lily’, ‘Rose’, [‘xiaoming’, ‘xiaohong’]]
- 注意:如果append()追加的数据是一个序列,则追加整个序列到列表
3.2.2、extend()
extend(): 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表。
- 单个数据
name_list = [‘Ton’,‘Lily’,‘Rose’]
name_list.extend(‘xiaoming’)
print(name_list)
结果:[‘Tom’, ‘Lily’, ‘Rose’, ‘x’, ‘i’, ‘a’, ‘o’, ‘m’, ‘i’, ‘n’, ‘g’]
- 序列数据
name_list = [‘Tom’, ‘Lily’, ‘Rose’]
name_list.extend([‘xiaoming’, ‘xiaohong’])
print(name_list)
结果:[‘Tom’, ‘Lily’, ‘Rose’, ‘xiaoming’, ‘xiaohong’]
3.2.3、insert()
insert() : 指定位置新增数据
列表序列.insert(位置下标,数据)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
mg-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-2ts1uFCa-1712435249610)]
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-ql1DaHxl-1712435249611)]