Witam mam za zadanie stworzenie tabeli z wartościami logicznymi, tj. w nagłówku a, b, a koniunkcja b, a alternatywa b i zaprzeczenie a, moje pytanie to, czy można stworzyć taką tabelę, oczywiście z odpowiednimi wartościami, przy pomocy jedynie dwóch pętli for, dostałem informację, że cały kod może zajmować tylko 4 linijki... Czy jest to możliwe?
0
1
A czemu nie?
- Zrób listę lambd: pierwsza zwraca pierwszy argument, druga zwraca drugi argument, trzecia zwraca koniunkcje, czwarta zwraca.... To jest jedna linijka.
- Wypisz sobie nagłówek jak chcesz, to druga linijka.
- Wygeneruj sobie listę "wyników" poprzez aplikowanie funkcji na argumentach, tzn
[fun(a,b) for fun in funkcje]
i wypisz tą listę, to jest trzecia linijka.
W praktyce możesz 1 i 3 linijkę złączyć w jedno, chociaż będzie mało czytelne ;] bo mozesz zrobić for fun in [lambda....]
a = 1
b = 0
print("naglowek")
print("|".join([str(fun(a,b)) for fun in [lambda a,b:a, lambda a,b:b, lambda a,b: a and b, lambda a,b: a or b, lambda a,b: not a]]))
0
Ok, w takim razie muszę poczytać o tych lambdach, bo nie używałem wcześniej, mam nadzieję, że sobie jakoś poradzę :)
0
Lambda to po prostu funkcja anonimowa zawierająca jedną instrukcję, nic więcej.
lambda lista_argumentów:instrukcja
jest równoważne:
def funkcja(lista_argumentów):
return instrukcja