a =0 a dalej a == 1, brak błędu

0

Witam

a = 0
a == 1

Dlaczego Python nie zgłasza błędu? A jeśli jest ok to do czego to można wykorzystać?

Pozdrawiam
Radek Głębicki

2

A czemu ma zgłaszać błąd? Przecież jest OK, przypisanie zero do a, a potem wyrażenie logiczne, które akurat powinno być False.

0

Dlaczego Python nie zgłasza błędu?

Bo jest to poprawne

A jeśli jest ok to do czego to można wykorzystać?

Pierwsze do przypisania wartości 0 do a a drugie do sprawdzenia czy a jest równe 1.

0
szweszwe napisał(a):

Dlaczego Python nie zgłasza błędu?

Bo jest to poprawne

A jeśli jest ok to do czego to można wykorzystać?

Pierwsze do przypisania wartości 0 do a a drugie do sprawdzenia czy a jest równe 1.

No, ale dlaczego nie czepia się, że brak np if ? Dlatego pytam jak to wykorzystać? Gdzie?

1
Radosław Głębicki napisał(a):

No, ale dlaczego nie czepia się, że brak np if ? Dlatego pytam jak to wykorzystać? Gdzie?

A w ktorym jezyku sie czepia? Mozesz rownie dobrze wpisac "5" i to tez jest poprawne.
Jak to wykorzystac? Np. w interaktywnym interpreterze

2

A w ktorym jezyku sie czepia?

Np w Javie:

int a;
a = 0; // działa
a == 1; // błąd kompilacji: not a statement
0

można wykorzystać na przykład do tego że wyrażenie jest leniwie ewaluowane i przerwie się w pierwszym możliwym miejscu gdzie wynik jest znany, np:

a == 1 or print('nie zgadza sie')

jeśli a == 1 to wynik a == 1 or cokolwiek jest już znany więc na tym etapie będzie zwrócone true, Jeśli wyrażenie a == 1 się nie zgadza, to prawa część będzie musiała zostać sprawdzona - w tym wypadku sprowadzi się to do warunkowego wywołania jakiejś funkcji (np print)

więc powyższe będzie równoznaczne z:

if a != 1:
  print('nie zgadza sie')
0
Radosław Głębicki napisał(a):

Witam

a = 0
a == 1

Dlaczego Python nie zgłasza błędu? A jeśli jest ok to do czego to można wykorzystać?

Taki hint dla Ciebie niezależny od języka. Jak coś Ci nie odpowiada mimo, że działa to sobie wyprintuj:

a = 0
print('Pierwsze a:', a)
a == 1
print('Drugie a:', a)

Debugowanie przez drukowanie nie ma sobie równych :-)

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