👤

Proszę o pomoc w zadaniu daje naj. Napisz program, w Pythonie który przywita się z użytkownikiem, poprosi go o podanie dowolnego zdania (zawierającego
przynajmniej pięć wyrazów), wydrukuje to zdanie, a następnie:
a. usunie z niego następujące znaki interpunkcyjne „ ,”, „.”, „!”, „?” i wyświetli efekt tego oczyszczenia
b. korzystając z operacji na listach, dla oczyszczonego zdania:
• zliczy i poda liczbę zawartych w nim wyrazów
• wydrukuje wszystkie wyrazy ze zdania w jednej linii
• wydrukuje wyrazy, które rozpoczynają się wielką literą, a jeśli takich wyrazów nie ma, to wydrukuje
odpowiedni komunikat
• sprawdzi czy zdanie (lista) zawiera któryś z dwóch spójników: „i”, „oraz”. Jeśli któryś
z poszukiwanych spójników w zdaniu nie występuje, to program również powinien o tym
informować
• posortuje wyrazy ze zdania alfabetycznie i wyświetli je w nowo ustalonej kolejności
c. korzystając z operacji na krotkach, program dla oczyszczonego zdania:
• zliczy i poda liczbę zawartych w nim wyrazów
• wydrukuje wszystkie wyrazy ze zdania w jednej linii
• poda jaki jest pierwszy, piąty i ostatni wyraz w tym zdaniu, zakładając, że pierwszy element
rozpoczyna krotkę zawierającą wyrazy ze zdania
d. korzystając z operacji na zbiorach, program dla oczyszczonego zdania:
• zliczy unikatowe wyrazy w zdaniu i poda ich liczbę
• wydrukuje unikatowe wyrazy ze zdania w jednej linii
e. sprawdzi, czy są różnice w odpowiedziach dotyczących wyświetlanych elementów oraz ich liczby
w podpunktach b., c. i d. Jeśli będzie różnica program powinien dać odpowiednią informację oraz
wyjaśnienie, dlaczego tak jest. Chodzi tutaj o różnice w zachowaniu tych trzech struktur danych.


Odpowiedź :

Odpowiedź:

def main():

   imie = input('Podaj imię: ')

   print('Witaj {}!\n'.format(imie))

   zdanie = input('{} podaj zdanie składające się z conajmniej 5 słów.\n'.format(imie))

   while len(zdanie.split(' ')) < 5:

       print()

       print('Zdanie jest za krótkie')

       zdanie = input('{} podaj zdanie składające się z conajmniej 5 słów.\n'.format(imie))

   print('\na)\n')

   print(a(zdanie))

   print('\nb)\n')

   rezultat = {}

   rezultat['b'] = b(a(zdanie))

   print('\nc)\n')

   rezultat['c'] = c(a(zdanie))

   print('\nd)\n')

   rezultat['d'] = d(a(zdanie))

   print('\ne)\n')

   e(rezultat['b'], rezultat['c'], rezultat['d'])

def a(zdanie):

   zdanie_ = ''

   for znak in zdanie:

       if ',.!?'.find(znak) == -1:

           zdanie_ += znak

   return zdanie_

def b(zdanie):

   rezultat = []

   zdanie = zdanie.split(' ')

   print('Podane zdanie składa się z {} wyrazów.'.format(len(zdanie)))     # zlicza ilość wyrazów w zdaniu

   print()

   rezultat.append(len(zdanie))

   wynik = ''

   for wyraz in zdanie:

       print(wyraz, end=" ")   # wyświetla zdanie

       wynik += wyraz + ' '

   print()

   rezultat.append(wynik)

   wynik = ''

   for wyraz in zdanie:

       if wyraz[0] == wyraz[0].upper():    # sprawdza wyrazy z wielkiej litery

           wynik += wyraz + ' '

   if len(wynik) != 0:     # wyśietlanie wyrazów z wielkiej litery lub komunikat

       print(wynik)

   else:

       print('Żadne z wyrazów w zdaniu nie rozpoczyna się wielką literą.')

   print()

   spojnik = False

   for wyraz in zdanie:

       if wyraz == 'i' or wyraz == 'oraz':     # sprawdzanie spójników w zdaniu

           spojnik = True

           break

   if not(spojnik):

       print('To zdanie nie zawiera spójnika "i" lub "oraz"')

   print()

   zdanie.sort()   # sortowanie wyrazów w zdaniu

   for wyraz in zdanie:

       print(wyraz)

   return rezultat

def c(zdanie):

   rezultat = []

   zdanie = zdanie.split(' ')

   zdanie = tuple(zdanie)  # zamiana listy na krotkę

   print(len(zdanie))  # wyświetlenie wyrazów w krotce

   rezultat.append(len(zdanie))

   print()

   wynik = ''

   for wyraz in zdanie:

       wynik += wyraz + ' '

   print(wynik)    # wypisanie wszystkich wyrazów w lini

   rezultat.append(wynik)

   print()

   # wypisanie 1, 5 i ostatniego elementu krtotki

   print('Pierwszy wyraz: {}\n'

         'Piąty wyraz: {}\n'

         'Ostatni wyraz: {}'.format(zdanie[0], zdanie[4], zdanie[len(zdanie)-1]))

   return rezultat

def d(zdanie):

   rezultat = []

   zdanie = zdanie.split(' ')

   unikat = []

   for wyraz in zdanie:

       if zdanie.count(wyraz) == 1:

           unikat.append(wyraz)

   print(len(unikat))

   rezultat.append(len(unikat))

   print()

   wynik = ''

   for wyraz in unikat:

       print(wyraz, end=' ')

       wynik += wyraz + " "

   rezultat.append(wynik)

   return rezultat

def e(b, c, d):

   if b != c:

       print('b != c')

   if b != d:

       print('Lista przechowuje wszystkie dane lecz zbiór tylko te, które do niego należą. '

             'W tym przypatku tyko unikalne wyrazy.')

   if d != c:

       print('Krotka przechowuje wszystkie dane lecz zbiór tylko te, które do niego należą. '

             'W tym przypatku tyko unikalne wyrazy.')

if __name__ == '__main__':

   main()

On Studier: Inne Pytanie