用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

Python自学    -  云代码空间

—— python自学——怎么学习python,自学python要多久?python+人工智能+人工智能+人工智能+大数据分析

新版红绿灯规则该怎么走?用python实现判断

2022-08-23|705阅||

摘要:先说结论:不停在第一排即可,跟着别人走,一看就会。 最近又网传“新版红绿灯”规则,还上了热搜,设计者还被骂下播了? 有网友说:一句话就说清楚了,为什么没明白人?直行、红灯停绿灯行,左右转、红灯停,绿灯、无灯行! 还有的网友表示:是个

先说结论:不停在第一排即可,跟着别人走,一看就会。

最近又网传“新版红绿灯”规则,还上了热搜,设计者还被骂下播了?



有网友说:一句话就说清楚了,为什么没明白人?直行、红灯停绿灯行,左右转、红灯停,绿灯、无灯行!


还有的网友表示:是个3x3的九宫格,类似一个魔方。开车的人都惊恐的看着会变出什么花样。。。


下面正文开始:


作为python人,我们可以用python写一个判断是否可走的程序。输入3个信号灯状态,返回是否可左转、直行、右转。


观察上面8个图片,规则总结为一句话:红灯停、绿灯走、左转不亮看直行,右转不红不用停。


翻译成技术语言:

  1. 如果要左转,先看第一列,如果都不亮就看第二列的颜色走;

  2. 如果要直行,只需要看第二列的颜色走;

  3. 如果要右转,红灯不能走,其他情况都可以走。


上代码:

定义3个信号常量

RED = 0
OFF = 1
GREEN = 2


判断是否可以左转

def left(l, m, r):
    # 左灯红 = 停
    if (l == RED):
        return False
    # 左灯绿 或 中间绿 = 走
    return l == GREEN or m == GREEN


判断是否可以直行

def direct(l, m, r):
    # 中间绿 = 走
    return m == GREEN


判断是否可以右转

def right(l, m, r):
    # 右灯关 或 右灯绿 = 走
    return r >= OFF


现在我们想知道图一的情况是否可以左转,运行

left(REDREDRED)


想知道图8的情况是否可右转,运行

right(OFFREDOFF)

整个程序的源码:

RED = 0
OFF = 1
GREEN = 2


def left(l, m, r):
    # 左灯红 = 停
    if (l == RED):
        return False
    # 左灯绿 或 中间绿 = 走
    return l == GREEN or m == GREEN


def direct(l, m, r):
    # 中间绿 = 走
    return m == GREEN


def right(l, m, r):
    # 右灯关 或 右灯绿 = 走
    return r >= OFF


def check(l, m, r):
    return '左转', left(l, m, r), '直行', direct(l, m, r), '右转', right(l, m, r)


if __name__ == '__main__':
    print(check(RED, RED, RED))
    print(check(OFF, GREEN, OFF))
    print(check(RED, GREEN, OFF))
    print(check(OFF, GREEN, RED))
    print(check(GREEN, RED, RED))
    print(check(RED, RED, OFF))
    print(check(RED, GREEN, RED))
    print(check(OFF, RED, OFF)) 



运行结果:

('左转', False, '直行', False, '右转', False)
('左转', True, '直行', True, '右转', True)
('左转', False, '直行', True, '右转', True)
('左转', True, '直行', True, '右转', False)
('左转', True, '直行', False, '右转', False)
('左转', False, '直行', False, '右转', True)
('左转', False, '直行', True, '右转', False)
('左转', False, '直行', False, '右转', True)


 
结果与图片一致


顶 4踩 2收藏
文章评论
    发表评论