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了.它可以用来中断当前的代码块,退出循环.

未完待续