Zadanie pomoc - zamiana znaków i liczba unikalnych znaków

0

Witam,
Nie mogę poradzić sobie z tym zadaniem (zadanie kliknij https://prnt.sc/qfka98):
Zrobiłem tak:

x = 'Programowanie w języku Python - od A do Z'

y = (x.lower().replace('-','').replace('ę','e'))

print(y)

Lecz ostatnie zdanie w zadaniu mnie przerosło. Jak użyć zbioru do wygenerowania znaków i ..........???
Proszę o pomoc

0

Wrzuć znaki do set'a i podaj jego rozmiar.

0
Delor napisał(a):

Wrzuć znaki do set'a i podaj jego rozmiar.

x = 'Programowanie w języku Python - od A do Z'
y = (x.lower().replace('-','').replace('ę','e'))
a = set('Programowanie w języku Python - od A do Z')
c = len(a)
print(y)
print(c)

Tak zrobiłem ale jest źle

0
kawad napisał(a):

Tak zrobiłem ale jest źle

Dlaczego źle?

x = 'Programowanie w języku Python - od A do Z'
print(set(x))
# {'g', 't', 'n', 'Z', 'e', 'd', 'ę', 'r', 'A', 'y', '-', 'P', 'z', 'u', 'm', 'j', 'o', 'w', ' ', 'h', 'k', 'a', 'i'}
print(len(set(x)))
# 23

To są unikalne znaki w podanym ciągu oraz ich liczba. Coś innego chcesz wyświetlić?

1

Masz zamienić polskie znaki na ASCII, np. ą na a oraz ć na c a robisz tylko replace('ę','e'). Usuwa więc to polskie znaki w tym konkretnym przypadku napisu 'Programowanie w języku Python - od A do Z', ale już nie dla Zażółć gęślą jaźń (najkrótsze poprawne polskie zdanie zawierające wszystkie polskie znaki specjalne). Poprawnie robi się to tak

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u'zażółć gęślą jaźń').encode('ascii', 'ignore')
'zazoc gesla jazn'

0
Delor napisał(a):
kawad napisał(a):

Tak zrobiłem ale jest źle

Dlaczego źle?

x = 'Programowanie w języku Python - od A do Z'
print(set(x))
# {'g', 't', 'n', 'Z', 'e', 'd', 'ę', 'r', 'A', 'y', '-', 'P', 'z', 'u', 'm', 'j', 'o', 'w', ' ', 'h', 'k', 'a', 'i'}
print(len(set(x)))
# 23

To są unikalne znaki w podanym ciągu oraz ich liczba. Coś innego chcesz wyświetlić?

kod wprowadzam do edytora który sprawdza poprawność zadania. Zadanie jest blednę wiec coś złe robie

0

... następnie zamień '-' oraz ' ' na pusty ciąg znaków '', ...

0

Napisałem kod:
x = 'Programowanie w języku Python - od A do Z'

y = (x.lower().replace('-','').replace('ę','e').replace(' ',''))

print(y)

print(len(set(y)))

A podpowiedz brzmi:

trzeba się zastanowić nad tym czy operacje, które wykonaliśmy funkcją replace() oraz lower() zostały na stałe przypisane do zmiennej x.

Powyższy kod jedynie wydrukuje te zmiany do konsoli i pozostawi zmienną x w początkowej postaci. Dlatego przy wywołaniu funkcji len() odnosimy się właśnie do niej. Stąd w wyniku wartość 23. Poprawna liczba unikalnych wartości to 18.

PS. W wyniku należy podać tylko liczbę unikalnych wartości w stringu.

0

No to jest chyba dobrze, nie? Ewentualnie wywal tego pierwszego print.

0
szweszwe napisał(a):

No to jest chyba dobrze, nie? Ewentualnie wywal tego pierwszego print.

Przeszło, dzięki :)

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