Mam problem jak wykonac ifa gdy input jest pod nim

0

Chodzi o to ze jakby gdy chce wykonac jakiegos ifa na podstawie tego co wpisalem w inpucie a input jest pod nim to nie chce sie wykonac np.


x = None

if x == '1': <------ to sie nie wykonuje
print('1')

x = input('> ')


czy da sie to jakos obejsc? (nie pisac zebym przestawil inputa na gore bo o to chodzi zeby byl na dole)

0

No… nie. Program jest wykonywany z góry na dół. Najpierw wykonywany jest if, a dopiero potem input

0

nie pisac zebym przestawil inputa na gore bo o to chodzi zeby byl na dole

Dlaczego musi być na dole?

2

Input może być na dole, tylko if musi być w funkcji i ta funkcja musi być wywołana po inpucie.

0

Zawsze możesz je dać w jakąś pętlę, wtedy if wykona się przy następnym obiegu. Generalnie jednak komputer nie szklana kula, i co za chwilę użytkownik wpisze nie wie. Albo daj też ten inny kod, dopiero wtedy będziemy w stanie ci powiedzieć jak to zrobić żeby jednak input był w kodzie przed if-em

0

Kod imperatywny wykonuje się w kolejności z góry na dół. Nie możesz zrobić ifa na podstawie wartości której jeszcze od użytkownika nie pobrałeś. Napisz co chcesz osiągnąć.

2

Pomiędzy drugą a trzecią linię musisz wstawić while, działający kod:

x = None
	
while True:

	if x == '1': 
		print('1')
	
	x = input('> ')
0

Podbijam @Shalom, ale już śpieszę z odpowiedzią dlaczego chcemy żebyś wyjaśnił co chcesz uzyskać i dlaczego warto to opisywać.
Kiedy opisujesz swój problem (nie dotyczy to tylko Ciebie, oczywiście), my musimy się domyślać jakie powinno być rozwiązanie. Nie wiemy tego. Staramy się dopasować do informacji, które uzyskaliśmy w pierwszym poście, ale to że coś jest jasne dla programisty piszącego kod i wydaje się opisane dokładnie, niekoniecznie znaczy, że będzie też klarowne dla innych osób. Jak widzisz wyżej - sugestie są różne.
Ktoś sugeruje while'a, ktoś wyjaśnia w jakiej kolejności wykonuje się kod, ktoś dodaje pytanie pomocnicze.
Ja sam po Twoim wyjaśnieniu zakładam, że zależy Ci na posiadaniu funkcji:

def nazwa_funkcji(jakasLiczbaBedacaStringiem):
  if(x=='1'):
    println('1')

a potem wywoływaniu jej przez podanie np. linijki

nazwa_funkcji('1') 

co daje rezultat '1'

albo

nazwa_funkcji('2')

co nie da żadnego rezultatu.

Jednak ja po prostu nie wiem co chcesz osiągnąć, więc nie wiem co odpowiedzieć.
Wyjaśnij cel, a ktoś na pewno pomoże. Tak niestety wyglądają pierwsze kroki, pewnie każdy z nas (chociaż mamy tutaj na forum trochę osób, które od dziecka byłyby w stanie wysyłać rakiety w kosmos, ale to jest taki fajny margines, roboty, a nie przeciętni ludzie. Im można co najwyżej zazdrościć, ale nie ma co się porównywać) przerabiał na początku problemy z formułowaniem problemu, to normalne jakby co :).

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