Wczytanie do zmiennej

0

Cześć, mam pętlę while, która wykonuje się cały czas, w niej wczytuję wartość z klawiatury i w zależności od spełnienia warunku mają się wykonać określone operacje. Mam coś takiego lecz to nie działa:

 
while True:
       znak == input();
       if znak == 'w':
             # jakieś instrukcje 

czy powyższy kod jest poprawny.

0

Mały edukacyjny potworek:

def Break():
	return True
	
try:
	while Break() != {
		'exit': lambda: Break(),
		'greet': lambda: print('Hello World!')
	}[input()](): pass
except EOFError:
    pass

stdin:

greet
exit
greet

stdout:

Hello World!
0

Nie bardzo rozumiem, staram się napisać, aby naciśnięcie klawisza "w" spowodowało uruchomienie silnika. Ale mam z tym problem.

0

w takim razie:

def start_engine():
	print('engine started')
	
try:
    while {
        'w': lambda: start_engine()
    }[input()](): pass
except EOFError:
    pass

http://ideone.com/ALvH45

0

Masz o jeden = za dużo, powinno być 

znak = input()

A całość 

znak = ""
while True:
       znak = input()
       if znak == "w":
             print("działa")
             break
0

Mam taki kod:

import time
import pigpio 
 
MOTOR_PIN = 26
 
pi = pigpio.pi()
pi.set_mode(MOTOR_PIN, pigpio.OUTPUT)
 
pi.set_PWM_frequency(26, 100)
 
while True:
        znak = input();
        if znak == "w":
             pi.set_PWM_dutycycle(26,100);
 
pi.set_mode(MOTOR_PIN, pigpio.INPUT)
pi.stop()

Najbardziej interesuje mnie pętla while. Program się kompiluje lecz po naciśnięciu litery "w" pojawia się taki błąd: https://zapodaj.net/ca1bfbd5cc46f.png.html

1

Skoro korzystasz z funkcji input, to musisz wpisywać "w". Jak nie chce Ci się pisać cudzysłowów (apostrofów), to zmień input() na raw_input() (albo wersję Pythona na >=3).

1 użytkowników online, w tym zalogowanych: 0, gości: 1