python科目三灯光模拟

这段时间在备考驾照科目三,昨天考过,成功拿本。备考过程中写过一个小脚本,帮助自己复习夜间灯光模拟的操作,此处浅浅开源一下,供有需求的朋友使用。

代码

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#coding=utf-8
# 选项含义
# 1:近光灯
# 2:远光灯
# 3:远近交替
# 4:远近交替+转向灯
# 5:示廓灯+报警灯
dt = {
"请开启前照灯":1,
"路口直行":1,
"会车":1,
"有路灯且照明良好的路口":1,
"同方向近距离跟车":1,
"交通信号灯控制的路口":1,
"无照明的路段":2,
"照明不良的路段":2,
"超车":4,
"通过急弯":3,
"通过坡道":3,
"通过拱桥":3,
"通过人行横道":3,
"通过没有信号灯的路口":3,
"路边临时停车":5,
"路上发生故障":5
}

key_list = list(dt.keys())
length = len ( key_list)
import random
import time
random.seed(time.time())

# 随机抽取n道题
count = 0
subject_num = 10
subject_idx = -1 # 题号下标赋初始值。初始值是多少不重要,但是得赋值
for i in range(subject_num):
# 生成一个随机数,对应于抽取的题号下标
new_subject_idx = random.randint(0,length-1)
while(new_subject_idx==subject_idx): # while loop防止两次抽到一样的题目
new_subject_idx = random.randint(0,length-1)
subject_idx = new_subject_idx
subject = key_list[subject_idx]
answer = dt[subject]
print(f"\n[{i}]\t{subject}")
print("1:近光灯; 2:远光灯; 3:远近交替; 4:远近交替+转向灯; 5:示廓灯+报警灯. ")
a = "" # 用户输入。如果输入为空则继续loop直到有输入。
while len(a)<1:
a = input(">>> ")
b = int(a)
if(b!=answer):
print(f"Wrong! The correct choice is {answer}")
count += 1
print(f"Total wrong answer num: {count}")

使用方法:

将上述代码保存为 科目三灯光模拟.py 文件,然后使用下面的指令运行代码

1
python 科目三灯光模拟.py

这样可以进入一个灯光模拟题的交互界面。程序会随机抽取10个场景,用户需要输入数字1~5以选择合适的灯光操作。如果选择错误,这个脚本会立即指出错误并给出正确的灯光操作。

下面是运行截图:

科目三灯光模拟

以上。

祝参加科目三考试的朋友们都能考出好成绩~