Python第三课
前情提要:
变量名
变量赋值
单行注释与多行注释
字符串
条件结构
相等的判断方法
input函数
8.print函数
小游戏:石头 剪刀 布(人机对战版(弱))
认真学完同学真的很棒,一节课可以学这么多内容
本节提纲
循环结构
逻辑运算符
导入包
随机数
查看文档
6.流程图
内置函数dir 和 help
小游戏石头剪刀布 人机对战完整版
游戏分析
提要,想好再做,可以让我们在写代码的时候思路更加清晰.不管是会解决的问题,还是待解决的问题,都能比较明了.这也是我推荐小朋友学习编程的重要依据,我们要学会分析问题,并努力想办法解决问题,不管是现有的方法,还是创造的方法.
想象一下这个游戏的场景:
CPU随机一个出拳(如果让玩家知道CPU出什么拳,就没意思是不是?)
剧透党什么的最讨厌了有没有?
等待玩家输入
根据玩家的输入判断游戏的结果
等待玩家的输入确定是继续新一轮游戏,还是退出游戏
如果玩家选择继续新一轮游戏,程序从回到1重新执新一遍
image.png
上图称为游戏程图.
圆角矩形用来表示 开始与结束
矩形表示处理
菱形表示判断
代码设计
import random
while 1:
cpu = random.randint(0,2) # 生成一个>=0 且 <=2 的随机数
user = input("请输入您要出的拳(0:拳头, 1:布 2: 剪刀)")
if cpu == 0:
if user == "0":
print("平局")
elif user == "1":
print("您胜利")
else:
print("CPU胜利")
elif cpu == 1:
if user == "0":
print("CPU胜利")
elif user == "1":
print("平局")
else:
print("您胜利")
else:
if user == "0":
print("您胜利")
elif user == "1":
print("CPU胜利")
else:
print("平局")
continue_game = input("退出游戏请按Q,按其他键进入下一轮:")
if continue_game == 'q' or continue_game == "Q":
break
代码分析:
import random
这一句是用来导入包的
名词:包
python中用来管理外部工具的单位. 就像我们生活中的工具包,里面可以有各种各样的工具(函数,或者其他的)
语法:
第一种 常规版
import + 包名
第二种 别名版
import + 包名 + as + 别名
别名的作用就是相当于给包名取了一个绰号.而且还是被人认可的哦!
就像有人称呼我为帅帅的章老师一样. 我本人是相当认可的.
举例:
import random as r
# 有了别名以后,本来要用random的地方,现在可以用别名来代替了
# random.randint()
r.randint(0,2)
说明:
以上两种方法都是将包里的工具一股脑的全都导入进来,不管用得着用不着的,不带着,以防万一
以下两种是要用什么导什么
from版1
from + 包名 + import + 工具名
示例:
from random import randint
randint(0,2)
from版2 别名版
from + 包名 + import + 工具名 + as + 别名
示例
from random import randint as ri
ri(0,2) # 等价于random.randint(0,2)
怎么查看一个包里有什么工具呢?
用到了第一个内置函数dir,用法如下
dir(random) # dir(包名)
显示如下
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', 'all', 'builtins', 'cached', 'doc', 'file', 'loader', 'name', 'package', 'spec', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
具体的怎么解读,我们可以看到randint这个东西
再用第四个内置函数help了,用法如下
help(random.randint)
显示如下:
randint(a, b) method of random.Random instance
Return random integer in range [a, b], including both end points.
可以自己试一下效果如何
while 条件:
代码
这个是python中循环结构的第一种结构,称为当型循环.
名词: 当型循环:
当条件成立的时候重复的做某事,直到条件不成立的时候,退出循环
这里 while 1: 表示条件永远成立.也可以写成while True.
注意:在python中有很多表示东西可以直接当成True来用的,也有很多可以直接当成False来用的.
比如,非0的数都 是True , 0 表示 False
即
while 0:
代码
表示条件永远不会成立,也就是我们用很多代码 写了个寂寞.因为,这些代码 是永远 不会起作用的.
什么时候用死循环呢?
当我们不确定什么时候会退出循环的时候,我们可以在循环体内部去判断要不要退出循环.要想在循环体内退出循环,就要用到关键字:break了.它可以用来中断当前的代码块,退出循环.
未完待续