任何避免使用大量 if 语句的方法

问题描述 投票:0回答:1

我刚刚从CS50学习完Python基础知识,现在正在尝试制作一个小游戏程序来练习。中途我遇到了一个潜在的问题。

总结一下游戏就像:

  1. 用户输入0-9的5个数字
  2. 游戏为 5 个数字编程了多种固定模式
  3. 将用户输入与模式进行匹配
  4. 根据匹配的内容(或不匹配)给出分数

示例:

 User will enter - 1,2,3,4,5 Types of possible patterns - a,a+1,a+2,a+3,a+4  1 point - a,a+2,a+4,a+6,a+8  2 points - a,a+1,a+3,a+5,a+7  3 points

因此在这种情况下用户获得 1 分。

我当前的问题是,我正在尝试制作很多不同的模式(例如 20 个),但目前我知道的唯一方法是对每个模式使用 if 语句,如下所示

if .....

if .....

if .....

但如果我要多次这样做,那就感觉不对了。我尝试寻找减少多个 if 的方法,但使用跳转表(字典)等方法似乎在这里不起作用。预先感谢

python if-statement pattern-matching
1个回答
0
投票

对于这种情况,您可以在大多数语言中使用“切换(匹配)”或“地图(对象形状数据)”。

示例:

def http_error(status):
match status:
    case 400:
        return "Bad request"
    case 404:
        return "Not found"
    case _:
        return "Something's wrong with the internet"
© www.soinside.com 2019 - 2024. All rights reserved.