是否可以在Python中实现RS触发器真值table?
Is it possible to implement RS flip flop truth table in Python?
我是 Python 的新手。我正在使用 Spyder(pandas 和 numpy)来 运行 一种数据分析算法。这需要对数据中的两个变量实施 RS 触发器。
在 C:
中是这样的
((R_b) != FALSE) ? (*(State_pb) = FALSE) : (((S_b) != FALSE) ? (*(State_pb) = TRUE) : *(State_pb));
这里R_b是触发器的R输入,S-b是S输入。注意使用指向触发器前一状态的指针来保留前一状态。这也可以在 Python 中实现吗?
这是一个函数,它使用 Python 的条件运算符相当直接地翻译了您的 C 代码。
from itertools import product
def flipflop(state, r, s):
return False if r else (True if s else state)
# test
print('state : r, s -> new_state')
for state, r, s in product((False, True), repeat=3):
print('{!s:5} : {!s:5}, {!s:5} -> {!s:5}'.format(state, r, s, flipflop(state, r, s)))
输出
state : r, s -> new_state
False : False, False -> False
False : False, True -> True
False : True , False -> False
False : True , True -> False
True : False, False -> True
True : False, True -> True
True : True , False -> False
True : True , True -> False
请注意,此代码和您的 C 代码都无法正确处理禁止的 r == s == True
输入。
我是 Python 的新手。我正在使用 Spyder(pandas 和 numpy)来 运行 一种数据分析算法。这需要对数据中的两个变量实施 RS 触发器。 在 C:
中是这样的((R_b) != FALSE) ? (*(State_pb) = FALSE) : (((S_b) != FALSE) ? (*(State_pb) = TRUE) : *(State_pb));
这里R_b是触发器的R输入,S-b是S输入。注意使用指向触发器前一状态的指针来保留前一状态。这也可以在 Python 中实现吗?
这是一个函数,它使用 Python 的条件运算符相当直接地翻译了您的 C 代码。
from itertools import product
def flipflop(state, r, s):
return False if r else (True if s else state)
# test
print('state : r, s -> new_state')
for state, r, s in product((False, True), repeat=3):
print('{!s:5} : {!s:5}, {!s:5} -> {!s:5}'.format(state, r, s, flipflop(state, r, s)))
输出
state : r, s -> new_state
False : False, False -> False
False : False, True -> True
False : True , False -> False
False : True , True -> False
True : False, False -> True
True : False, True -> True
True : True , False -> False
True : True , True -> False
请注意,此代码和您的 C 代码都无法正确处理禁止的 r == s == True
输入。