Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 17, 2015 12:37:23

Rauf
Зарегистрирован: 2015-02-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена значений переменных по нажатию с клавиатуры

Всем привет!
Я новичок и прошу помощи в написании кода.
Задача состоит в следующем: 4 переменные (пр. SW1, SW2, SW3, SW4) значения каждой изначально равно “0”, при каждом нажатии на клавишу “Х” поочерёдно каждая переменная принимает значение “1”. После принятия каждой значения “1” при пятом нажатии необходимо чтобы все переменные сбрасывались на “0”. А при нажатии на клавишу “Q” происходил выход из программы.
Очень прошу не проходите мимо, протяните руку помощи.
За ранее благодарю.

Офлайн

#2 Фев. 17, 2015 15:29:55

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Смена значений переменных по нажатию с клавиатуры

#!/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)

Офлайн

#3 Фев. 18, 2015 10:05:21

Rauf
Зарегистрирован: 2015-02-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена значений переменных по нажатию с клавиатуры

Хочу выразить свою благодарность!
Огромное СПАСИБО.
Ещё один добрый отзывчивый человек с другого форума мне помог и прислал ниже приведённый код, в котором нет необходимости в постоянном нажатии клавиши ввода.

# -*- 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version