Python基础到实战一飞冲天(二)-python基础(十一)--if嵌套

liftword5个月前 (12-13)技术文章49

# 11_ Python基础到实战一飞冲天(二)-python基础(十一)--if嵌套石头剪刀布随机数案例

## 一、if嵌套-05-火车站安检-检查刀的长度

### 1、if 嵌套应用:火车站安检案例代码

```python

# 02_分支-- dzs_07_火车站安检.py

# pycharm中,按 Ctrl + /可以快速添加或者取消注释

# pycharm中,选中代码块,按 Tab 键,增加缩进,按 Shift + Tab 减少缩进。

# 定义布尔型变量 has_ticket 表示是否有车票

has_ticket = True

# 定义整数型变量 knife_length 表示刀的长度,单位:厘米

knife_length = 18

# 首先检查是否有车票,如果有,才允许进行 安检

if has_ticket:

print("有车票,可以开始安检...")

# 安检时,需要检查刀的长度,判断是否超过 20 厘米

# 如果超过 20 厘米,提示刀的长度,不允许上车

if knife_length >= 20:

print("不允许携带 %d 厘米长的刀上车" % knife_length)

# 如果不超过 20 厘米,安检通过

else:

print("安检通过,祝您旅途愉快……")

# 如果没有车票,不允许进门

else:

print("大哥,您要先买票啊")

print("")

```

### 2、示例:在 pycharm 中测试 if 嵌套应用:火车站安检案例

## 二、石头剪刀布-01-明确目标和需求

### 1、综合应用 —— 石头剪刀布案例:**目标**

1)强化 **多个条件** 的 **逻辑运算**。

2)体会 `import` 导入模块(“工具包”)的使用。

### 2、案例**需求**

1)从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

2)电脑 **随机** 出拳 —— 先假定电脑只会出石头,完成整体代码功能

3)比较胜负:规则:石头 胜 剪刀 | 剪刀 胜 布 | 布 胜 石头。

## 三、石头剪刀布-02-玩家和电脑出拳

### 1、 石头剪刀布案例:基础代码实现

* 先 **假定电脑就只会出石头**,完成整体代码功能(创建 dzs_08_石头剪刀布案例.py)

```python

# 02_分支-- dzs_08_石头剪刀布案例.py

# pycharm中,按 Ctrl + /可以快速添加或者取消注释

# pycharm中,选中代码块,按 Tab 键,增加缩进,按 Shift + Tab 减少缩进。

# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

player = int(input("请出拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 假定电脑永远出石头

computer = 1

# 先打印输出出拳结果

print("玩家选择的拳头是 %d -- 电脑出的拳是 %d " %(player, computer))

# 比较胜负

```

### 2、 石头剪刀布案例:基础代码 示例

## 四、石头剪刀布-03-判断胜负

### 1、 石头剪刀布案例:基础代码补全

* 先 **假定电脑就只会出石头**,完成整体代码功能(创建 dzs_08_石头剪刀布案例.py)

```python

# 02_分支-- dzs_08_石头剪刀布案例.py

# pycharm中,按 Ctrl + /可以快速添加或者取消注释

# pycharm中,选中代码块,按 Tab 键,增加缩进,按 Shift + Tab 减少缩进。

# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

player = int(input("请出拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 假定电脑永远出石头

computer = 1

# 先打印输出出拳结果

print("玩家选择的拳头是 %d -- 电脑出的拳是 %d " %(player, computer))

# 比较胜负

if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):

print("噢耶!玩家赢了,电脑弱爆了!!!")

elif player == computer:

print("心有灵犀,平局,再来一盘!")

else:

print("玩家输了,不行,我要和电脑决战到天亮!")

```

### 2、 石头剪刀布案例:基础代码补全 示例

## 五、石头剪刀布-04-[扩展]增加换行调整条件判断代码格式

### 1、 石头剪刀布案例:基础代码 规范与完善

* 先 **假定电脑就只会出石头**,完成整体代码功能(创建 dzs_08_石头剪刀布案例.py)

```python

# 02_分支-- dzs_08_石头剪刀布案例.py

# pycharm中,按 Ctrl + /可以快速添加或者取消注释

# pycharm中,选中代码块,按 Tab 键,增加缩进,按 Shift + Tab 减少缩进。

# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

player = int(input("请出拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 假定电脑永远出石头

computer = 1

# 先打印输出出拳结果

print("玩家选择的拳头是 %d -- 电脑出的拳是 %d " %(player, computer))

# 比较胜负

# 如果条件判断的内容太长,可以在最外侧的条件增加一对大括号

# 再在每一个条件之间,使用回车,PyCharm 可以自动增加 8 个空格

if ((player == 1 and computer == 2) or

(player == 2 and computer == 3) or

(player == 3 and computer == 1)):

print("噢耶!玩家赢了,电脑弱爆了!!!")

elif player == computer:

print("心有灵犀,平局,再来一盘!")

else:

print("玩家输了,不行,我要和电脑决战到天亮!")

```

### 2、 石头剪刀布案例:基础代码规范与完善 示例

## 六、石头剪刀布-05-随机数的使用

### 1、python 随机数的处理

1)在 `Python` 中,要使用随机数,首先需要导入 **随机数** 的 **模块** —— “工具包”。

```python

import random

```

2)导入模块后,可以直接在 **模块名称** 后面敲一个 `.` 然后按 `Tab` 键,会提示该模块中包含的所有函数。

3) `random.randint(a, b)` ,返回 `[a, b]` 之间的整数,包含 `a` 和 `b`

4) 例如:

```python

random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20

random.randint(20, 20) # 结果永远是 20

random.randint(20, 10) # 该语句是错误的,下限必须小于上限

```

### 2、ipython3 中演示随机数 示例:

```python

python@ubuntu:~$ ipython3

Python 3.5.2 (default, Jan 26 2021, 13:30:48)

Type "copyright", "credits" or "license" for more information.

IPython 2.4.1 -- An enhanced Interactive Python.

? -> Introduction and overview of IPython's features.

%quickref -> Quick reference.

help -> Python's own help system.

object? -> Details about 'object', use 'object??' for extra details.

In [1]: import random

In [2]: random.

random.BPF random.expovariate random.randrange

random.LOG4 random.gammavariate random.sample

random.NV_MAGICCONST random.gauss random.seed

random.RECIP_BPF random.getrandbits random.setstate

random.Random random.getstate random.shuffle

random.SG_MAGICCONST random.lognormvariate random.triangular

random.SystemRandom random.normalvariate random.uniform

random.TWOPI random.paretovariate random.vonmisesvariate

random.betavariate random.randint random.weibullvariate

random.choice random.random

In [2]: random.randint(1, 10)

Out[2]: 3

In [3]: random.randint(1, 10)

Out[3]: 10

In [4]: random.randint(1, 10)

Out[4]: 7

In [5]: random.randint(1, 10)

Out[5]: 8

In [6]: type(random.randint(1, 10))

Out[6]: int

```

## 七、石头剪刀布-06-电脑随机出拳

### 1、 石头剪刀布案例:导入随机数工具包,完善代码

(创建 dzs_08_石头剪刀布案例.py)

```python

# 02_分支-- dzs_08_石头剪刀布案例.py

# pycharm中,按 Ctrl + /可以快速添加或者取消注释

# pycharm中,选中代码块,按 Tab 键,增加缩进,按 Shift + Tab 减少缩进。

# 导入随机工具包

# 注意:导入工具包代码应该放在最顶部,这样可以方便下方代码随时使用工具包的工具。

import random

# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

player = int(input("请出拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 假定电脑永远出石头

# computer = 1

computer = random.randint(1, 3)

# 先打印输出出拳结果

print("玩家选择的拳头是 %d -- 电脑出的拳是 %d " %(player, computer))

# 比较胜负

# 如果条件判断的内容太长,可以在最外侧的条件增加一对大括号

# 再在每一个条件之间,使用回车,PyCharm 可以自动增加 8 个空格

if ((player == 1 and computer == 2) or

(player == 2 and computer == 3) or

(player == 3 and computer == 1)):

print("噢耶!玩家赢了,电脑弱爆了!!!")

elif player == computer:

print("心有灵犀,平局,再来一盘!")

else:

print("玩家输了,不行,我要和电脑决战到天亮!")

```

### 2、 石头剪刀布案例:导入随机数工具包,完善代码 示例

## 八、循环-01-目标确定

### 1、循环:学习目标

* 程序的三大流程。

* while 循环基本使用。

* break 和 continue。

* while 循环嵌套。

### 2、循环:就是让 **特定代码 重复** 执行,避免了程序员重复写代码。

## 九、循环-02-三大流程介绍

### 1、程序的三大流程

* 在程序开发中,一共有三种流程方式:

1)**顺序** —— **从上向下**,顺序执行代码。


2)**分支** —— 根据条件判断,决定执行代码的 **分支**。

3)**循环** —— 让 **特定代码 重复** 执行。

### 2、程序三大流程示意图:

## 十、循环基础-01-基础语法介绍和常用的应用场景

### 1、 `while` 循环基本使用

* 循环的作用就是让 **指定的代码** 重复的执行。

* `while` 循环最常用的应用场景就是 **让执行的代码** 按照 **指定的次数** **重复** 执行。

* 需求 —— 打印 5 遍 `Hello Python`

* 思考 —— 如果要求打印 100 遍怎么办?

### 2、 `while` 语句基本语法

```python

初始条件设置 —— 通常是重复执行的 计数器

while 条件(判断 计数器 是否达到 目标次数):

条件满足时,做的事情1

条件满足时,做的事情2

条件满足时,做的事情3

...(省略)...


处理条件(计数器 + 1)

```

### 3、**注意**:

* `while` 语句以及缩进部分是一个 **完整的代码块**。

```python

# 03_循环-- dzs_01_while重复执行.py

# pycharm中,按 Ctrl + /可以快速添加或者取消注释

# pycharm中,选中代码块,按 Tab 键,增加缩进,按 Shift + Tab 减少缩进。

i = 1

while i <= 10 :

Print(“hello python”)

I = i + 1

```

`上一节关联链接请点击:`

09_ Python基础到实战一飞冲天(二)-python基础(九)--if基础

相关文章

Python 中 if __name__ == &#39;__main__&#39; 的解释

1. 基本概念在Python中,`if __name__ == "__main__"`是一种常见的代码结构。`__name__`是一个内置变量,它的值取决于模块是如何被使用的。当一个P...

Python之if语句使用

在Python编程语言中,for语句是一个非常常用的控制流语句。它用于遍历一个序列(如列表、元组、字典等),并对每个元素执行一段代码。下面我们将详细介绍Python中for语句的使用方法。1、用if语...