我是Python新手。我正在使用Spyder (熊猫和numpy)运行数据分析算法。这需要对数据中的两个变量实现RS触发器。在C中是这样的:
((R_b) != FALSE) ? (*(State_pb) = FALSE) : (((S_b) != FALSE) ? (*(State_pb) = TRUE) : *(State_pb));这里,R_b是翻转触发器的R输入,S是S输入.注意,使用指向触发器的前一状态的指针来保留以前的状态。这也可以用Python实现吗?
发布于 2016-12-05 12:55:47
下面是一个函数,它使用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输入。
https://stackoverflow.com/questions/40973175
复制相似问题