Dlaczego program nie wypisuje wyniku?

0

Cześć,
próbuję zrozumieć dlaczego ta funkcja nie zwraca niczego:

text = "To jest przykładowe zdanie ćwiczebne!"
def funkcja(t):
    wyrazy = 1
    litery = 0
    slownik = {}
    for x in t:
        if x == " ":
            wyrazy += 1
        if x != " ":
            litery += 1
            if x in slownik:
                slownik[x] += 1
            else:
                slownik[x] = 1
    return wyrazy, slownik, litery
funkcja(text)

U gościa w poradniku działa to w tej postaci. http://analityk.edu.pl/zliczanie-liter/ , 7min,21sek.

0

@profWoland: Co to znaczy, że nie zwraca? Dostajesz 3 nulle?

2
profWoland napisał(a):

próbuję zrozumieć dlaczego ta funkcja nie zwraca niczego:

Zwraca

text = "To jest przykładowe zdanie ćwiczebne!"
def funkcja(t):
    wyrazy = 1
    litery = 0
    slownik = {}
    for x in t:
        if x == " ":
            wyrazy += 1
        if x != " ":
            litery += 1
            if x in slownik:
                slownik[x] += 1
            else:
                slownik[x] = 1
    return wyrazy, slownik, litery

print(funkcja(text))

wypisuje

(5, {'T': 1, 'o': 2, 'j': 1, 'e': 5, 's': 1, 't': 1, 'p': 1, 'r': 1, 'z': 3, 'y': 1, 'k': 1, 'ł': 1, 'a': 2, 'd': 2, 'w': 2, 'n': 2, 'i': 2, 'ć': 1, 'c': 1, 'b': 1, '!': 1}, 33)

WIęc jeszcze raz - co rozumiesz przez "nie zwraca"?

UPDATE testowane https://www.online-python.com/

4

No tak, na filmiku korzystał z jupytera notebooka, a to działa tak samo jakbyś w konsoli odpalił interpreter i w nim wpisał.

Jak masz w pliku normalnie, to jak chcesz coś na stdout wypisać to musisz użyć print.

2

Pewenie uruchamiasz to

python skrypt.py

To nic Ci nie zwróci bo nie masz funkcji print() w kodzie. I program po prostu się kończy.

0

Dziękuję za wyjaśnienie jaka jest różnica między zwraca a wypisuje - u mnie w pycharmie nie wypisywała. Teraz poprawiłem z printem i już śmiga.

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