Найти - Пользователи
Полная версия: Смена значений переменных по нажатию с клавиатуры
Начало » Python для новичков » Смена значений переменных по нажатию с клавиатуры
1
Rauf
Всем привет!
Я новичок и прошу помощи в написании кода.
Задача состоит в следующем: 4 переменные (пр. SW1, SW2, SW3, SW4) значения каждой изначально равно “0”, при каждом нажатии на клавишу “Х” поочерёдно каждая переменная принимает значение “1”. После принятия каждой значения “1” при пятом нажатии необходимо чтобы все переменные сбрасывались на “0”. А при нажатии на клавишу “Q” происходил выход из программы.
Очень прошу не проходите мимо, протяните руку помощи.
За ранее благодарю.
Alen
#!/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)) 
Rauf
Хочу выразить свою благодарность!
Огромное СПАСИБО.
Ещё один добрый отзывчивый человек с другого форума мне помог и прислал ниже приведённый код, в котором нет необходимости в постоянном нажатии клавиши ввода.

# -*- 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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB