- 每日反馈
- day02知识回顾
- 补01-if语句的嵌套[掌握]
- if语句的嵌套就是正在if语句所控制的代码块之中,再书写一个if语句
- 注意: 只有外层条件成立时或不成立,才能执行对应的内层的分支语句,内层分支语句是否执行,由外层条件决定.
- 需求1: 取地铁站安检, 要保证有票(ticket) 并且刀子小于9cm(knife_length) 保证了这两点就可以上车,否则只能回家了
- 分析: 首先刀子不能大于9cm 否则你有票也上不去
- 如果刀子不大于9cm 有票我们就能上车,否则上不去
- 需求2: 输入一个整数, 判断其为正奇数,正偶数,负奇数还是负偶数.
- 00-今日知识内容
- 01-循环的体验[了解]
- 02-while语句详解[掌握]
- 需求: 输出从1-5的5个数字,使用while完成
- 1.定义循环变量,用于配合循环变量控制循环次数,
- 2.设置循环条件
- 3.执行循环中的代码
- 4.循环变量自增
- 表述流程:
- 设置循环变量的起始值,当满足条件<=5的时候,进入循环体执行代码并让循环变量自增,当循环条件不满足时,跳出循环,继续执行后续代码
- while循环一定需要循环变量么???? 不需要
- while 循环的必备要素: 1. while 关键字 2. 循环条件 3. 循环体
- 除了循环变量外,时间,进程状态,对象个数,生命周期等都可以控制循环.
- 循环变量如果没有,循环条件一直成立,则会出现无限循环.
- 这种循环条件恒成立的情况,叫做死循环,或者无限循环
- 死循环是程序的一种执行状态,不一定是bug
- 我们遇到的死循环有很多: 玩游戏,手机推送
- 03-while应用:1-100的累加和[掌握]
- 04-while应用:1-100的偶数累加和[掌握]
- 05-while循环的循环的循环嵌套[熟悉]
- 循环嵌套:就是在循环的循环体重,书写了另外的一个循环
- 需求: 我们要做四组动作,每组动作如下:
- 跑三圈, 做5个蹲起
- 分析: 如果做4组动作,每组动作相同,可以使用循环, 跑3圈, 5个蹲起也可以用循环
- 第一步: 先做一组动作
- # 跑3圈
- i = 1
- while i <= 3:
- print(f’我跑完了第{i}圈’)
- i += 1
- # 做5个蹲起
- i = 1
- while i <= 5:
- print(f’我做了{i}个蹲起’)
- i += 1
- 第二步:我们要做四组运动
- i = 1
- while i <= 4:
- print(f’第{i}组动作已经完成了’)
- i += 1
- 第三步: 将每一组动作的细节替换到第二步内
- 注意: 我们内层循环中循环变量为i 外层循环中的循环变量就不能叫i 了
- 错误原因: 内存循环同时修改了外层循环的循环变量,导致无法正确控制循环次数
- 修改方式: 将内外层循环的循环变量分别命名即可
- 解释为什么内层循环变量名称可以相同,因为内层循环变量使用前先进行了赋值.
- 07-循环嵌套应用:打印矩形[熟悉]
- 需求: 使用while循环,快速打印矩形
- 第一步: 打印一行* 一共 5个 使用循环
- 循环变量从几开始? 从几开始不重要,重要的是打印5次
- 结果: *
- 第二步: 执行五次打印一行数据的操作
- 第三步: 将第二步中打印的内容换成打印*
- 此时外层循环的循环变量可以定义成与内层循环不一样的变量名称
- 结果: *
- 原因: 我们将打印的结束符都替换为了空格,所以没有了换行操作,我们需要在每一行打印完成后,执行一次换行操作
- 09-for循环介绍[掌握]
- for循环也是循环结构的一种,一般和容器类型(一个变量中保存了多个数据,这种数据就是容器类型,例如字符串)配合使用
- 循环遍历: 依次从容器类型中获取每一个值
- 需求: 使用for循环遍历字符串
- for循环的优点:
- 1.语法简洁,且不容易出错(因为不需要循环变量控制循环次数)
- 2.从容器中遍历数据,不需要构造数据,可以直接取用
- for循环的缺点:
- 1.for循环循环多少次,就需要有一个指定长度的容器,如果循环次数非常多,消耗性能(容器比较大) , 构造死循环一般使用while
- 2.不以循环条件为循环终止规则,所以有明确循环结束条件的循环结构建议要使用while
- 在所有情况下 while 和for 都是可以互相转换的,但是我们要选择更合适的语法结构
- 11-for循环的应用[熟练使用]
- 12-for循环实现九九乘法表[熟练使用]
- 13-猜拳游戏的优化[熟悉]
- 需求:
- 1.让猜拳游戏循环进行
- 2.让猜拳游戏计算得分,谁赢了就积一分,输了不扣分,平局不得分,也不扣分
- 3.其中一方得分超过3分则退出游戏,并宣布胜利方
- 思考: 玩家和电脑的分数记录,应该在循环体内定义还是在循环体外定义???
- 导入random模块
- TODO: 2.创建两个变量,记录玩家和电脑的得分
- 如果我们数据需要累计变化,则需要放到循环体之外进行定义
- TODO: 1.将猜拳游戏的所有内容放入到循环当中
- TODO: 4.使用循环条件控制游戏结束 双方都小于3时,才可以进入循环体
- TODO: 5.宣布胜利方
- 只有一方获得胜利后,才能执行此代码
- 运行后语法无问题,但是结果不正确,证明你的逻辑出现了问题,需要断点调试
- 作业
- 作业提交
- 文件链接
每日反馈
讲的很清楚,很易懂,教学风格很轻松,让我们乐于投入学习,很棒很棒 |
---|
老师讲的很清楚,而且笔记做得非常 |
老师很棒! |
day02知识回顾
练习中出现的两个问题:
1.python解释器的配置
情况: 打开老师的代码,右键没有run按钮,证明解释器没有配置
点击file >>> settings,唤出如下界面选择要使用的解释器即可
如果解释器列表为空
点击解释器下拉菜单旁边的小齿轮点击add进行添加即可
添加过程和创建工程时一致
2.insert键
情况说明: pycharm中光标变粗,输入数据后会覆盖后边的内容
只要点击键盘上的ins 或者insert键即可
如果不知道自己键盘上insert键在哪里,直接唤出软键盘点击ins即可
补01-if语句的嵌套[掌握]
“”” 分支语句嵌套的格式: if 外层条件语句: 外层条件语句执行时的代码块 if 内层条件语句: 内层条件语句成立时执行的代码块 else: 外层条件不成立时执行的代码块 if 内层条件语句: 内层条件语句成立时执行的代码块
注意: 只有外层条件成立时或不成立,才能执行对应的内层的分支语句,内层分支语句是否执行,由外层条件决定.
“””
需求1: 取地铁站安检, 要保证有票(ticket) 并且刀子小于9cm(knife_length) 保证了这两点就可以上车,否则只能回家了
分析: 首先刀子不能大于9cm 否则你有票也上不去
如果刀子不大于9cm 有票我们就能上车,否则上不去
knife_length = 7 ticket = 0
if knife_length <= 9: print(‘可以过安检了’)
# 如果通过了安检,我们就要验票了
if ticket == 1:
print('赶紧上车吧,回家真开心!')
else:
print('忘记买票了,只能走回家了!')
else: print(‘不能通过安检’)
需求2: 输入一个整数, 判断其为正奇数,正偶数,负奇数还是负偶数.
num = int(input(‘请输入您要判断的数字:’))
if num > 0: print(‘正’) if num % 2 == 0: print(‘偶数’) else: print(‘奇数’) elif num < 0: print(‘负’) if num % 2 == 0: print(‘偶数’) else: print(‘奇数’) else: print(‘您输入的数字是0’)
<a name="iFGIG"></a>
# 补02-三目运算符[了解]
```python
# 目: 就是参与运算符的值
# 三目运算(三元运算)符,就是有三个值参与运算
# python中三目运算符的格式: 条件成立时返回的结果 if 条件 else 条件不成立时返回的结果
# 需求: 有两个变量 a 和 b 打印 a 和b 中较大的值
a = 5
b = 9
# 分支语句
# if a > b:
# print(a)
# else:
# print(b)
# 三目运算符
result = a if a > b else b
print(result)
练习: 判断数字是奇数还是偶数,如果是奇数就返回结果为”奇数”, 如果是偶数,就返回结果为”偶数”.
result = '偶数' if num % 2 == 0 else '奇数'
print(result)
00-今日知识内容
- while循环
- 循环嵌套
- 循环的应用
- 打印图形
- 九九乘法表
- for循环
- 猜拳游戏案例
01-循环的体验[了解]
# 循环语句: 当满足条件时,重复执行相同或者相似的代码
# 在python中,构建循环结构的关键字有两个, while for
# 体验循环
# print('我老我错了...')
# print('我老我错了...')
# print('我老我错了...')
# print('我老我错了...')
# ...
# 如果没有循环,则反复执行多次相同或相似的代码比较麻烦
# 使用循环
i = 0
while i < 10000:
print('老婆我错了...')
print('你错在哪了...')
print('我错在....')
print('还有呢?????')
print('我直接跪榴莲吧...')
i += 1
print('买个包我就原谅你....')
# 循环可以大幅度提高开发效率,但是不能提高执行效率
02-while语句详解[掌握]
- while 循环的必备要素: 1. while 关键字 2. 循环条件 3. 循环体 ```python “”” while循环的格式:
while 条件语句: 条件成立时循环执行的代码1 条件成立时循环执行的代码2 …. “””
需求: 输出从1-5的5个数字,使用while完成
1.定义循环变量,用于配合循环变量控制循环次数,
i = 1
2.设置循环条件
while i <= 5:
3.执行循环中的代码
print(i)
4.循环变量自增
i += 1
print(‘程序结束’)
表述流程:
设置循环变量的起始值,当满足条件<=5的时候,进入循环体执行代码并让循环变量自增,当循环条件不满足时,跳出循环,继续执行后续代码
while循环一定需要循环变量么???? 不需要
while 循环的必备要素: 1. while 关键字 2. 循环条件 3. 循环体
除了循环变量外,时间,进程状态,对象个数,生命周期等都可以控制循环.
循环变量如果没有,循环条件一直成立,则会出现无限循环.
while True: print(‘1’)
这种循环条件恒成立的情况,叫做死循环,或者无限循环
死循环是程序的一种执行状态,不一定是bug
我们遇到的死循环有很多: 玩游戏,手机推送
练习: 使用循环输出10次"我爱学习".
```python
i = 0
while i < 10:
print('我爱学习!')
i += 1
03-while应用:1-100的累加和[掌握]
# 使用while快速计算出1-100的累加和
"""
如果我想计算1-100的累加和 我应该怎么办???
1. 先计算1+2将结果记录下来
2. 将上一次计算的结果加上3,并记录新的结果
3. 将上一次计算的结果加上4,并记录新的结果
4. 将上一次计算的结果加上5,并记录新的结果
....
99. 将上一次计算的结果加上100,并记录新的结果,这个结果就是最终的得数
"""
# 分析:
# 1.我们要使用数字进行相加,那么我们可以使用循环变量作为数字,进行累加
# 2.每一次相加结束后,都将循环变量自增
# 3.我们要使用一个变量记录每一次相加的结果,并参与下一次累加计算(这个变量,我们称之为累加器)
# 第一步: 我们要相加的数字是1-100 多以第一步我们先输出1-100 的整数
# # 1.定义循环变量
# i = 1
# # 2.设置循环条件
# while i <= 100:
# # 3.执行循环代码
# print(i)
# # 4.对循环变量自增
# i += 1
# 第二步: 将数字全部累加在一起,需要有一个变量保存其过程中累加的结果
# 1.定义循环变量
i = 1
# 创建一个累加器,保存每一次循环的累加结果
sum1 = 0
# 2.设置循环条件
while i <= 5:
# 3.执行循环代码
sum1 = i + sum1
# 4.对循环变量自增
i += 1
# 输出结果
print(sum1)
流程图
练习: 计算1-20的累乘积.
# 练习:计算1-20的累乘积
# 创建循环变量
i = 1
# 创建一个累乘器,用来保存累乘期间的计算结果
mul = 1
# 设置循环条件
while i <= 20:
# 累乘数据
mul *= i
# 循环变量自增
i += 1
print(mul)
# 怎样确定累加器的初始值??? 唯一标准,就是初始值参与运算时不影响最终的计算结果
04-while应用:1-100的偶数累加和[掌握]
# 需求: 使用while循环,快速计算1-100的偶数累加和
# 分析: 计算累加和和偶数累加和,为的区别是,要判断就行,该判断在哪写???? 在循环体当中
# 1.创建循环变量
i = 1
# 2.设置循环条件和累加器
sum1 = 0
while i <= 100:
# 3.判断奇偶性,并累加
if i % 2 == 0:
sum1 += i
# 4.循环变量自增
i += 1
print(sum1) # 2550
05-while循环的循环的循环嵌套[熟悉]
- 循环嵌套时,内层循环和外层循环的循环变量名称不能相同
- 循环的嵌套会极大增加代码的执行压力,慎用
- 在正常开发中 循环嵌套的次数不会超过3层
```python
循环嵌套:就是在循环的循环体重,书写了另外的一个循环
需求: 我们要做四组动作,每组动作如下:
跑三圈, 做5个蹲起
分析: 如果做4组动作,每组动作相同,可以使用循环, 跑3圈, 5个蹲起也可以用循环
第一步: 先做一组动作
# 跑3圈
i = 1
while i <= 3:
print(f’我跑完了第{i}圈’)
i += 1
# 做5个蹲起
i = 1
while i <= 5:
print(f’我做了{i}个蹲起’)
i += 1
第二步:我们要做四组运动
i = 1
while i <= 4:
print(f’第{i}组动作已经完成了’)
i += 1
第三步: 将每一组动作的细节替换到第二步内
注意: 我们内层循环中循环变量为i 外层循环中的循环变量就不能叫i 了
错误原因: 内存循环同时修改了外层循环的循环变量,导致无法正确控制循环次数
修改方式: 将内外层循环的循环变量分别命名即可
解释为什么内层循环变量名称可以相同,因为内层循环变量使用前先进行了赋值.
j = 1 while j <= 4:
# 跑3圈
i = 1
while i <= 3:
print(f'我跑完了第{i}圈')
i += 1
# 做5个蹲起
i = 1
while i <= 5:
print(f'我做了{i}个蹲起')
i += 1
print(f'第{j}组动作已经完成了')
j += 1
<a name="RKzXp"></a>
# 06-print函数详解[掌握]
```python
# print函数是用来打印数据的
# print('hello world!!!')
# print('hello bigdata!!!')
# print('hello chuanzhi!!!')
# 思考:
# 1. 为什么会分三行打印? print函数每次打印结束后,都会执行一次换行操作.
# 2. 我们如何在打印时,让字符串换行??? \n(\是enter上方的斜杠)
# 需求: 打印<静夜思> 每打印依据,执行一次换行操作
# print('床前明月光,\n疑是地上霜.\n举头望明月,\n低头思故乡.')
# print在哪里执行的\n呢?我们怎样修改换行符呢??
# print(self, *args, sep=' ', end='\n', file=None)
# sep 是间隔符, 间隔符默认为空格 end 是结束符,结束符默认是换行
# 修改换行符 \t是制表位一般情况下等于四个空格,相当于你键盘上的tab键
print('传智教育好,', end='\t')
print('工作真好找,', end='\t')
print('找到就高薪,', end='\t')
print('回家养二老.')
# 结果: 传智教育好, 工作真好找, 找到就高薪, 回家养二老.
# 如果想让上方的所有内容输出到一行,没有任何结束符效果
print('传智教育好,', end='')
print('工作真好找,', end='')
print('找到就高薪,', end='')
print('回家养二老.')
# 结果: 传智教育好,工作真好找,找到就高薪,回家养二老.
# 结论: print会在打印结束之后,自动输出一次结束符,默认的结束符就是换行符,我们可以使用end=""的形式手动修改
# 修改间隔符
print('传智', '教育', '黑马', '程序员') # 传智 教育 黑马 程序员
# 需求: 一次打印多个内容时,中间用$进行分隔
print('阿奇', '毛毛', '天天', '小丽', sep='$') # 阿奇$毛毛$天天$小丽
# 补充 [了解]
# 在字符串中如何输出\
# \在字符串中的含义叫做转义字符,他是用于将其他字符进行转译. 例如t就是一个字母 \t 就是制表位
# 如果我们想输出\就要使用另外一个转译字符,防止其转译
print('\\')
# 需求: 打印: http:\\www.baidu.com
print('http:\\\\www.baidu.com')
07-循环嵌套应用:打印矩形[熟悉]
“””
第一步: 打印一行* 一共 5个 使用循环
循环变量从几开始? 从几开始不重要,重要的是打印5次
i = 0 while i < 5:
# 如果想让打印的*在一行显示,需要对结束符进行修改
print('*', end=' ')
i += 1
结果: *
第二步: 执行五次打印一行数据的操作
i = 0 while i < 5: print(‘打印一行数据’) i += 1
第三步: 将第二步中打印的内容换成打印*
此时外层循环的循环变量可以定义成与内层循环不一样的变量名称
j = 0 while j < 5:
# print('打印一行数据')
i = 0
while i < 5:
# 如果想让打印的*在一行显示,需要对结束符进行修改
print('*', end=' ')
i += 1
# 需要在此位置对于打印内容进行换行,因为每次内层循环执行完成后都会来到这里,这个时机正好是一行内容打印完成
print() # 括号内,什么也不用写,因为其结束符默认就是换行符
j += 1
结果: *
原因: 我们将打印的结束符都替换为了空格,所以没有了换行操作,我们需要在每一行打印完成后,执行一次换行操作
<a name="XhwF8"></a>
# 08-循环嵌套应用:打印三角形[熟悉]
```python
# 使用循环嵌套,快速打印一个三角形
"""
1: *
2: * *
3: * * *
4: * * * *
5: * * * * *
"""
# 第一步: 我们打印一行 * 是谁控制* 的数量
i = 0
while i < 3:
print('*', end=' ')
i += 1
# 如果 我们要修改打印*的数量需要修改谁????? 循环变量的初始值 循环条件
# 我选择修改循环条件: 想打印多少个* 就把小于号后边的数字改成几
# 第二步: 三角形一共5行,所以我们需要打印五行*
j = 1
while j <= 5:
print('打印一行内容')
j += 1
# 第三步: 将第一步中打印的内容添加到第二步中
j = 1 #j就是行号
while j <= 5:
i = 0
# 此处可以控制每一行打印的* 的数量
# 我们通过分析发现每一行打印的数量,正好就是行号
while i < j:
print('*', end=' ')
i += 1
# 每一行内容打印完成后,需要换行
print()
j += 1
练习: 打印一个倒三角形
""" j *
* * * * * 0列 5个
* * * * 1列 4个
* * * 2 3
* * 3 2
* 4 1
结论: j + * = 5 >>>> * = 5-j
"""
# 第一步: 先将正三角形的代码写出来
j = 0
while j < 5:
i = 0
while i < j + 1:
print('*', end=" ")
i += 1
print()
j += 1
# 第二步: 更具正三角形的代码,分析*的数量和列的关系修改代码
# 分析:
j = 0
while j < 5:
i = 0
while i < 5 - j:
print('*', end=" ")
i += 1
print()
j += 1
09-for循环介绍[掌握]
- 构造无限循环一般使用while
- 有明确的循环跳出条件的一般使用while
- 除上述情况外都建议使用for
- for在开发中的使用场景远大于while
```python
for循环也是循环结构的一种,一般和容器类型(一个变量中保存了多个数据,这种数据就是容器类型,例如字符串)配合使用
“”” 格式: for 临时变量 in 容器类型: 循环体
循环遍历: 依次从容器类型中获取每一个值
for 循环循环的逻辑: 通过for关键字构造循环,每次从容器类型中获取一个元素,赋值给临时变量,如果容器内的元素全部提取完成,则结束循环 所以:for循环中,容器内元素的个数,决定了循环的次数 “””
需求: 使用for循环遍历字符串
str1 = ‘itheima’ for i in str1: print(i)
for循环的优点:
1.语法简洁,且不容易出错(因为不需要循环变量控制循环次数)
2.从容器中遍历数据,不需要构造数据,可以直接取用
for循环的缺点:
1.for循环循环多少次,就需要有一个指定长度的容器,如果循环次数非常多,消耗性能(容器比较大) , 构造死循环一般使用while
2.不以循环条件为循环终止规则,所以有明确循环结束条件的循环结构建议要使用while
在所有情况下 while 和for 都是可以互相转换的,但是我们要选择更合适的语法结构
<a name="y8u8O"></a>
# 10-range函数的介绍[掌握]
```python
# range函数就是按照一定规则获取范围内的整数集合的函数
# 使用格式: range(起始位置, 终止位置, 步长)
# 需求: 使用range函数获取从1-10的整数集合
# 使用list函数可以查看range中都有哪些数值
# 证明: 起始位置到终止位置的范围是一个左闭右开区间,因为包含起始位置不包含结束位置
# print(list(range(1, 10, 1))) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(1, 11, 1))) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 什么是步长??? 步长就是相邻两个数字的差
print(list(range(1, 11, 2)))
# 在range函数中步长可以省略,默认步长是1
print(list(range(1, 11))) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
11-for循环的应用[熟练使用]
# 需求1: 使用for循环计算1-100的累加和
# 第一步: 先将1-100打印出来
# for i in range(1,101):
# print(i)
# 第二步: 计算1-100的累加和,此时需要创建累加器
sum1 = 0
for i in range(1, 101):
sum1 += i
print('1-100的累加和是:', sum1)
# 需求2: 使用for循环计算1-100的偶数累加和
sum2 = 0
for i in range(1, 101):
if i % 2 == 0:
sum2 += i
print('1-100的偶数累加和是:', sum2)
# 注意: 1. 在for循环的循环体之外不要使用临时变量
# 原因: 如果for循环遍历的容器为空容器,此时i尚未被定义.
# print(i)
for j in '':
print(123)
# NameError: name 'j' is not defined
# 如果容器为空则j不会被定义
# print(j)
# 2. 临时变量是一个变量名称可以随意修改,修改为什么在循环体内用什么就可以了.
练习: 用for循环打印一个三角形.
# 使用循环嵌套,快速打印一个三角形
"""
1: *
2: * *
3: * * *
4: * * * *
5: * * * * *
"""
# 第一步: 使用for循环打印一行*
# 如果range的起始位置是0,则可以省略
# for i in range(5):
# print('*', end=" ")
# 结果: * * * * *
# 第二步: 让第一步执行五次,打印5行
# for j in range(5):
# for i in range(5):
# print('*', end=" ")
# # 内层循环执行一次,则打印一个换行符
# print()
# 第三步: 让每一行打印的* 的数量和行数相等
for j in range(5):
for i in range(j+1):
print('*', end=" ")
# 内层循环执行一次,则打印一个换行符
print()
12-for循环实现九九乘法表[熟练使用]
"""
九九乘法表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
.....
.............................9*9=81
"""
# 分析: 乘法表中每一个公示的第一个数字就是列的序号, 第二个数字就是行的序号
# 得出的结论:
# 1.九九乘法表是一个直角三角形的阵列, 9行9列
# 2.每一个公式的第一个数字就是列的需要,第二个就是行的需要
# 3.每一个公式都是一个字符串
# 第一步: 打印一个9行9列的三角形
for i in range(9):
for j in range(i + 1):
print('*', end=' ')
print()
# 第二步: 将每一个*输出的部分改为第几行第几列
for i in range(9):
for j in range(i + 1):
print(f'第{i + 1}行, 第{j + 1}列', end=' ')
print()
# 第三步: 将字符串信息,改写为九九乘法表的公式
for i in range(9):
for j in range(i + 1):
# 将字符串修改为列号 * 行号 = 结果的格式
# 如果使用空格当做结束符,公式无法对其,如果使用\t则可以对齐这就是制表位的作用.
print(f'{j + 1} * {i + 1} = {(j + 1) * (i + 1)}', end='\t')
print()
13-猜拳游戏的优化[熟悉]
- 练习建议: 如果你不知道从何入手,建议
- 把老师的代码赋值过去运行一遍
- 把老师代码中的注释删掉,自行填补注释
- 把老师的代码删除,根据刚才填写的注释补全代码
```python
需求:
1.让猜拳游戏循环进行
2.让猜拳游戏计算得分,谁赢了就积一分,输了不扣分,平局不得分,也不扣分
3.其中一方得分超过3分则退出游戏,并宣布胜利方
思考: 玩家和电脑的分数记录,应该在循环体内定义还是在循环体外定义???
导入random模块
import random
TODO: 2.创建两个变量,记录玩家和电脑的得分
如果我们数据需要累计变化,则需要放到循环体之外进行定义
computer_score = 0 palyer_score = 0
TODO: 1.将猜拳游戏的所有内容放入到循环当中
TODO: 4.使用循环条件控制游戏结束 双方都小于3时,才可以进入循环体
while palyer_score < 3 and computer_score < 3:
# 如果我们的数据需要每次循环都初始化,则放在循环体内定义
# 玩家出拳,用户键入
player = int(input('请输入您要输入的拳型:石头(1), 剪刀(2), 布(3)'))
# 电脑出拳, 随机出拳
computer = random.randint(1, 3)
# 比较拳型,宣布结果
if (player == 1 and computer == 3) or (player == 2 and computer == 1) or (player == 3 and computer ==2):
print('电脑获胜')
# TODO: 3.当玩家或电脑获胜时,分数要进行增加
computer_score += 1
elif player == computer:
print('平局')
else:
print('玩家获胜')
# TODO: 3.当玩家或电脑获胜时,分数要进行增加
palyer_score += 1
print(f'电脑得分为{computer_score}, 玩家等分为{palyer_score}')
TODO: 5.宣布胜利方
只有一方获得胜利后,才能执行此代码
if palyer_score >= 3: print(‘玩家获得最终胜利’) else: print(‘电脑获得最终胜利’)
运行后语法无问题,但是结果不正确,证明你的逻辑出现了问题,需要断点调试
作业
作业提交
文件链接
百度云盘: 链接:https://pan.baidu.com/s/13TqhouBQ8h1lP2VFtQHgMw 提取码:lh3d
阿里云盘:「python+大数据79期基础」等文件 https://www.aliyundrive.com/s/G6iPqGFQgfJ