python的总结2

1、以 `#` 开头,`#` 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用

2、为了保证代码的可读性,`#` 后面建议先添加一个空格,然后再编写相应的说明文字

3、要在 Python 程序中使用多行注释,可以用 **一对 连续的 三个 引号**(单引号和双引号都可以)

```python

"""

这是一个多行注释

在多行注释之间,可以写很多很多的内容……

"""

4、算数运算符

| // | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 

| % | 取余数 | 返回除法的余数 9 % 2 = 1 

| ** | 幂 | 又称次方、乘方,2 ** 3 = 8 

* 以下表格的算数优先级由高到最低顺序排列

| 运算符 | 描述 |

| --- | --- |

| ** | 幂 (最高优先级) |

| * / % // | 乘、除、取余数、取整除 |

| + - | 加法、减法 |

 

5、1. 程序 **运行之前**,程序是 **保存在硬盘** 中的

2. 当要运行一个程序时

    * 操作系统会首先让 **CPU** 把程序复制到 **内存** 中

    * **CPU** 执行 **内存** 中的 **程序代码**

> **程序要执行,首先要被加载到内存**

 

6、 在 Python 中,每个变量 **在使用前都必须赋值**,变量 **赋值以后** 该变量 **才会被创建**

* 等号(=)用来给变量赋值

    * `=` 左边是一个变量名

 

7、写一个超市买苹果的python的程序

# 1. 输入苹果的单价

price_str= input("苹果的单价:")

# 2. 输入苹果的重量

weight_str= input("苹果的重量:")

# 3. 计算支付的总金额

# 注意:两个字符串变量之间是不能直接用乘法的

# money = price_str * weight_str

# 1> 将价格转换成小数

price= float(price_str)

# 2> 将重量转换成小数

weight= float(weight_str)

# 3> 用两个小数来计算最终的金额

money= price* weight

print(money)

 

8、

**需求**

1. 定义字符串变量 `name`,输出 **我的名字叫 小明,请多多关照!**
2. 定义整数变量 `student_no`,输出 **我的学号是 000001**
3. 定义小数 `price`、`weight`、`money`,输出 **苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元**
4. 定义一个小数 `scale`,输出 **数据比例是 10.00%**

```python
print("我的名字叫 %s,请多多关照!" % name)
print("我的学号是 %06d" % student_no)
print("苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("数据比例是 %.02f%%" % (scale * 100))

 

# 定义字符串变量 name,输出 我的名字叫 小明,请多多关照!
name = "大小明"
print("我的名字叫 %s,请多多关照!" % name)

# 定义整数变量 student_no,输出 我的学号是 000001
student_no = 100123456
print("我的学号是 %06d" % student_no)

# 定义小数 price、weight、money,
# 输出 苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元
price = 8.5
weight = 7.5
money = price * weight
print("苹果单价 %.2f 元/斤,购买了 %.3f 斤,需要支付 %.4f 元" % (price, weight, money))

# 定义一个小数 scale,输出 数据比例是 10.00%
scale = 0.8
print("数据比例是 %.2f%%" % (scale * 100))

 

 

9、

关键字

* **关键字** 就是在 `Python` 内部已经使用的标识符
* **关键字** 具有特殊的功能和含义
* 开发者 **不允许定义和关键字相同的名字的标示符**

 

1. 在定义变量时,为了保证代码格式,`=` 的左右应该各保留一个空格
2. 在 `Python` 中,如果 **变量名** 需要由 **二个** 或 **多个单词** 组成时,可以按照以下方式命名
    1. 每个单词都使用小写字母
    2. 单词与单词之间使用 **`_`下划线** 连接
    * 例如:`first_name`、`last_name`、`qq_number`、`qq_password`

 

10、

## 驼峰命名法

* 当 **变量名** 是由二个或多个单词组成时,还可以利用驼峰命名法来命名
* **小驼峰式命名法**
    * 第一个单词以小写字母开始,后续单词的首字母大写
    * 例如:`firstName`、`lastName`
* **大驼峰式命名法**
    * 每一个单词的首字母都采用大写字母
    * 例如:`FirstName`、`LastName`、`CamelCase` 

 

我们实际开发中都经常性用下划线区分两个单词之间的命名

1. 在定义变量时,为了保证代码格式,`=` 的左右应该各保留一个空格
2. 在 `Python` 中,如果 **变量名** 需要由 **二个** 或 **多个单词** 组成时,可以按照以下方式命名
    1. 每个单词都使用小写字母
    2. 单词与单词之间使用 **`_`下划线** 连接
    * 例如:`first_name`、`last_name`、`qq_number`、`qq_password`

 

10、if 要判断的条件:
    条件成立时,要做的事情

> 注意:代码的缩进为一个 `tab` 键,或者 **4** 个空格 —— **建议使用空格**

> * 在 Python 开发中,Tab 和空格不要混用!

**需求**

1. 定义一个整数变量记录年龄
2. 判断是否满 18 岁 (**>=**)
3. 如果满 18 岁,允许进网吧嗨皮

```python
# 1. 定义年龄变量
age = 18

# 2. 判断是否满 18 岁
# if 语句以及缩进部分的代码是一个完整的代码块
if age >= 18:
    print("可以进网吧嗨皮……")

# 3. 思考!- 无论条件是否满足都会执行
print("这句代码什么时候执行?")

 

if的判断条件哪里不可以有空格的

**注意**

1. `elif` 和 `else` 都必须和 `if` 联合使用,而不能单独使用
2. 可以将 `if`、`elif` 和 `else` 以及各自缩进的代码,看成一个 **完整的代码块**

# 输入用户年龄
age = int(input("请输入年龄:"))

# 判断是否满 18 岁 (>=)
if age >= 18:

    # 如果满 18 岁,允许进网吧嗨皮
    print("你已经成年,欢迎来网吧嗨皮")

else:
    # 如果未满 18 岁,提示回家写作业
    print("你还没有成年,请回家写作业吧")

# 这句代码无论条件是否成立都会执行!
print("这句代码什么时候执行?")

 在开发中,使用 `if` 可以 **判断条件**
* 使用 `else` 可以处理 **条件不成立** 的情况
* 但是,如果希望 **再增加一些条件**,**条件不同,需要执行的代码也不同** 时,就可以使用 `elif` 
* 语法格式如下:

```python
if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……

**注意**

1. `elif` 和 `else` 都必须和 `if` 联合使用,而不能单独使用
2. 可以将 `if`、`elif` 和 `else` 以及各自缩进的代码,看成一个 **完整的代码块**

 

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

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

# 首先检查是否有车票,如果有,才允许进行 安检
if has_ticket:
    print("车票检查通过,准备开始安检")

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

        # 如果超过 20 厘米,提示刀的长度,不允许上车
        print("您携带的刀太长了,有 %d 公分长!" % knife_length)
        print("不允许上车")

    # 如果不超过 20 厘米,安检通过
    else:
        print("安检已经通过,祝您旅途愉快!")

# 如果没有车票,不允许进门
else:
    print("大哥,请先买票")

 

11、

弄一个小游戏的石头剪刀布的游戏


# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
player =int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))

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

computer = 1

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

# 比较胜负
# 1	石头 胜 剪刀
# 2	剪刀 胜 布
# 3	布 胜 石头

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("不服气,我们决战到天明!")

 随机数的处理

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

```python
import random
```

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

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

 

 

所以要改变代码的,然后就是怎么样利用随机数的进行赋值设置

# 导入随机工具包
# 注意:在导入工具包的时候,应该将导入的语句,放在文件的顶部
# 因为,这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具
import random

# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 —— 先假定电脑只会出石头,完成整体代码功能
computer = random.randint(1, 3)

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

# 比较胜负
# 1	石头 胜 剪刀
# 2	剪刀 胜 布
# 3	布 胜 石头
# if (()
#        or ()
#        or ()):
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("不服气,我们决战到天明!")

 

12、循环

 

* 程序的三大流程
* while 循环基本使用
* break 和 continue
* while 循环嵌套

## 01. 程序的三大流程

* 在程序开发中,一共有三种流程方式:
    * **顺序** —— **从上向下**,顺序执行代码
    * **分支** —— 根据条件判断,决定执行代码的 **分支**
    * **循环** —— 让 **特定代码 重复** 执行

 

 

while` 语句基本语法

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

while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
    
    处理条件(计数器 + 1)

# 打印 5 遍 Hello Python
# 1. 定义一个整数变量,记录循环次数
i = 1

# 2. 开始循环
while i <= 5:

    # 1> 希望在循环内执行的代码
    print("Hello Python")

    # 2> 处理计数器
    # i = i + 1
    i += 1

# 3. 观察一下,循环结束后,计数器 i 的数值是多少
print("循环结束后,i = %d" % i)

 赋值运算符

* 在 Python 中,使用 `=` 可以给变量赋值
* 在算术运算时,为了简化代码的编写,`Python` 还提供了一系列的 与 **算术运算符** 对应的 **赋值运算符**
* 注意:**赋值运算符中间不能使用空格**

| 运算符 | 描述 | 实例 |
| --- | --- | --- |
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符     | c *= a 等效于 c = c * a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
| %= | 取 **模** (余数)赋值运算符 | c %= a 等效于 c = c % a |
| **= | 幂赋值运算符 | c **= a 等效于 c = c ** a |

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
八数码问题是一种经典的人工智能问题,目标是将一个九宫格中的数字按照规定的移动方式移动到目标状态。以下是八数码问题的一些Python实现总结: 1. BFS算法实现: 使用BFS算法可以实现八数码问题的求解。具体步骤为: - 将起始状态加入队列 - 从队列中取出状态,对其进行扩展,生成新的状态 - 如果新的状态已经出现过,则跳过;否则,将新状态加入队列 - 重复执行上述步骤,直到找到目标状态 实现代码如下: ```python def bfs(start, end): queue = [(start, "")] visited = set() while queue: node, path = queue.pop(0) if node == end: return path visited.add(node) for move, delta in MOVES.items(): new_node = make_move(node, delta) if new_node not in visited: queue.append((new_node, path + move)) return "impossible" ``` 2. A*算法实现: A*算法是一种启发式搜索算法,可以更快地找到八数码问题的最优解。具体步骤为: - 计算每个状态到目标状态的估价函数值(即预计还需要多少步才能到达目标状态) - 将起始状态加入开放列表 - 计算起始状态的估价函数值,并将其加入到估价函数列表 - 从开放列表中取出估价函数值最小的状态,对其进行扩展,生成新的状态 - 如果新的状态已经出现过,则跳过;否则,将新状态加入开放列表和估价函数列表 - 重复执行上述步骤,直到找到目标状态 实现代码如下: ```python def astar(start, end): queue = [(heuristic(start, end), start, "")] visited = set() while queue: h, node, path = heapq.heappop(queue) if node == end: return path visited.add(node) for move, delta in MOVES.items(): new_node = make_move(node, delta) if new_node not in visited: new_h = heuristic(new_node, end) heapq.heappush(queue, (new_h, new_node, path + move))) return "impossible" ``` 以上是八数码问题的两种Python实现方式,选择哪种方法取决于你的需求和运行环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值