Форум сайта python.su
0
Всем привет!
Я новичок и прошу помощи в написании кода.
Задача состоит в следующем: 4 переменные (пр. SW1, SW2, SW3, SW4) значения каждой изначально равно “0”, при каждом нажатии на клавишу “Х” поочерёдно каждая переменная принимает значение “1”. После принятия каждой значения “1” при пятом нажатии необходимо чтобы все переменные сбрасывались на “0”. А при нажатии на клавишу “Q” происходил выход из программы.
Очень прошу не проходите мимо, протяните руку помощи.
За ранее благодарю.
Офлайн
49
#!/usr/bin/env python # -*- coding: utf-8 -*- zeros = (0, 0, 0, 0) sw1, sw2, sw3, sw4 = zeros try: input = raw_input # for python 2.x except NameError: pass while True: data = input('Enter x to shift the register, or q to quit: ') if 'q' in data.lower(): break value = 1 if 'x' in data.lower() else 0 if sw4 and value: sw1, sw2, sw3, sw4 = zeros else: sw4 = sw4 or (value and sw3) sw3 = sw3 or (value and sw2) sw2 = sw2 or (value and sw1) sw1 = sw1 or value print('SW1: {} SW2: {} SW3: {} SW4: {}'.format(sw1, sw2, sw3, sw4))
Отредактировано Alen (Фев. 17, 2015 17:45:41)
Офлайн
0
Хочу выразить свою благодарность!
Огромное СПАСИБО.
Ещё один добрый отзывчивый человек с другого форума мне помог и прислал ниже приведённый код, в котором нет необходимости в постоянном нажатии клавиши ввода.
# -*- coding: utf-8 -*- from tkinter import * class SW: def __init__(self): self.SW1, self.SW2, self.SW3, self.SW4 = [0]*4 self.cout = 1 print(self.SW1, self.SW2, self.SW3, self.SW4) self.root = Tk() self.root.bind('x', self.change) self.root.bind('q', self.end) self.root.mainloop() def change(self, event): if self.cout == 1: self.SW1 = 1 elif self.cout == 2: self.SW2 = 1 elif self.cout == 3: self.SW3 = 1 elif self.cout == 4: self.SW4 = 1 else: self.SW1, self.SW2, self.SW3, self.SW4 = [0]*4 self.cout = 0 self.cout += 1 print(self.SW1, self.SW2, self.SW3, self.SW4) def end(self, event): self.root.destroy() if __name__ == '__main__': SW()
Отредактировано Rauf (Фев. 18, 2015 10:05:50)
Офлайн