python - determinating if the input is even or odd numbers -
hello trying write program in python asks user input set of numbers of 1's , 0's , want program tell me if have , number of zeros or odd number of zeros or no zero's @ all. help!!
forstate = "start" curstate = "start" trans = "none" value = 0 print "former state....:", forstate print "transition....:", trans print "current state....", curstate while curstate != "you hav , number of zeros": trans = raw_input("input 1 or 0: ") if trans == "0" , value <2: value = value + 1 forstate = curstate elif trans == "1" , value < 2: value = value + 0 forstate = curstate curstate = str(value) + " zeros" if value >= 2: curstate = "you have , number of zeros" print "former state ...:", forstate print "transition .....:", trans print "current state....", curstate
looks you're trying finite state machine?
try: inp = raw_input except nameerror: inp = input def getint(msg): while true: try: return int(inp(msg)) except valueerror: pass start, odd, = range(3) state_next = [odd, even, odd] state_str = ['no zeros yet', 'an odd number of zeros', 'an number of zeros'] state = start while true: num = getint('enter number (-1 exit)') if num==-1: break elif num==0: state = state_next[state] print 'i have seen {0}.'.format(state_str[state])
edit:
try: inp = raw_input except nameerror: inp = input start, odd, = range(3) state_next = [odd, even, odd] state_str = ['no zeros yet', 'an odd number of zeros', 'an number of zeros'] def reduce_fn(state, ch): return state_next[state] if ch=='0' else state state = reduce(reduce_fn, inp('enter @ own risk: '), start) print "i have seen " + state_str[state]
Comments
Post a Comment