百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

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

off999 2024-11-23 20:46 16 浏览 0 评论

# 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 import 出现 ModuleNotFoundError 解决方法

错误的原因是你的Python环境没有正确安装库文件。本文以Scapy为例,给出详细方案:1.确认是否成功安装Scapy运行以下命令检查Scapy是否已安装:pip3list|gre...

Github 7.4k star,一个强大的 Python 库-sh!

大家好,今天为大家分享一个强大的Python库-sh。Github地址:https://github.com/amoffat/shsh库是Python生态系统中一个专门用于执行系统命令的第三方...

学习编程第148天 python编程循环的嵌套使用

今天学习的是刘金玉老师零基础Python教程第32期,主要内容是python编程循环的嵌套使用。(一)一维数组及输出#一维数组list1=["110001","四川二流子...

2025-07-09:使数组元素互不相同所需的最少操作次数。用go语言,

2025-07-09:使数组元素互不相同所需的最少操作次数。用go语言,给定一个整数数组nums和一个整数k,对于数组中的每个元素,你最多可以对其进行一次操作:将一个在区间[-k,k]内的...

python数据分析numpy基础之max求数组最大值

1python数据分析numpy基础之max求数组最大值python的numpy库的max()函数,用于计算沿指定轴(一个轴或多个轴)的最大值。用法numpy.max(a,axis=None,...

加快Python算法的四个方法(四)Dask

CDA数据分析师出品相信大家在做一些算法经常会被庞大的数据量所造成的超多计算量需要的时间而折磨的痛苦不已,接下来我们围绕四个方法来帮助大家加快一下Python的计算时间,减少大家在算法上的等待时间。...

六十六、Leetcode数组系列(中篇)(leetcode679)

@Author:Runsen@Date:2020/6/8人生最重要的不是所站的位置,而是内心所朝的方向。只要我在每篇博文中写得自己体会,修炼身心;在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰难...

Numpy中的ndarray是什么?('numpy.ndarray' object has no attribute 'append')

1.创建ndarray创建数组最简单的办法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。np.array会尝试为新建的这个数组推断出一个...

Python中的数据导入与查询(python怎样导入数据库)

适用场景:快速导入文本/Excel数据→Pandas读取大型数值数据→Numpy处理复杂二进制文件→h5py/scipy.io数据库交互→SQLAlchemy+Pandas一、数据...

2025-07-02:统计数组中的美丽分割。用go语言,给定一个整数数组

2025-07-02:统计数组中的美丽分割。用go语言,给定一个整数数组nums,我们要把它划分成三个连续且非空的子数组nums1、nums2、nums3,且这三个子数组按顺序拼接后还原为原数组...

2025-07-10:字符相同的最短子字符串Ⅰ。用go语言,给定一个长度

2025-07-10:字符相同的最短子字符串Ⅰ。用go语言,给定一个长度为n的二进制字符串s和一个允许执行的最大操作次数numOps。每次操作可以选择字符串中的任意一个位置i(0≤i...

2025-06-19:识别数组中的最大异常值。用go语言,你有一个长度为

2025-06-19:识别数组中的最大异常值。用go语言,你有一个长度为n的整数数组nums,其中恰好有n-2个元素属于“特殊数字”类别。剩下的两个元素中,一个等于所有这些特殊数字的总和,另...

2025-06-28:长度可被 K 整除的子数组的最大元素和。用go语言,给

2025-06-28:长度可被K整除的子数组的最大元素和。用go语言,给定一个整数数组nums和一个整数k,求nums中长度为k的倍数的非空子数组中,子数组和的最大值。返回该最大和...

在 Python 中如何向一个已排序的数组(列表) 中插入一个数呢

在Python中如何向一个已排序的数组(列表)中插入一个数呢?方法有很多种,关键在于原来数组是什么样的排序,用到啥排序方法效率高,就用哪种。我们来练习其中的几种插入方法,另外也掌握下遍历数组的...

2025-07-04:统计符合条件长度为 3 的子数组数目。用go语言,给定

2025-07-04:统计符合条件长度为3的子数组数目。用go语言,给定一个整数数组nums,请你计算有多少个长度恰好为3的连续子数组满足这样的条件:子数组的第一个元素与第三个元素的和,正好...

取消回复欢迎 发表评论: