Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kurs_alx_pcz
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
kurs_alx_pcz
Commits
8cea2c2a
Commit
8cea2c2a
authored
Nov 28, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sortowanie z localami
parent
b0bae201
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
0 deletions
+52
-0
sortowanie_tekstow.py
dzien4/zadania/sortowanie_tekstow.py
+52
-0
No files found.
dzien4/zadania/sortowanie_tekstow.py
0 → 100644
View file @
8cea2c2a
# etap 1: w pętli prosimy użytkownika o wpisywanie kolejnych słów
# i dodajemy te słowa do listy tak długo, aż użytkownik wpisze pusty napis
lista
=
[]
while
True
:
slowo
=
input
(
'Podaj kolejne słowo: '
)
if
not
slowo
:
break
lista
.
append
(
slowo
)
print
(
lista
)
print
(
'Zebrane dane:'
,
lista
)
# etap 2: sortowanie listy
# funkcja sorted(zrodlo_danych) w wyniku zwraca nową listę z posortowanymi elementami
# a nie modyfikuje podanego źródła danych (źródłem może być lista, ale także dowolna inna rzecz "iterowalna")
# metoda .sort() , którą można wywołać na obieckie listy, zmienia kolejność wewnątrz listy
# sortowanie napisów domyślnie jest oparte o kody Unicode,
# z tego wynika, że "polskie litery" są umieszczone za literami łacińskimi, np. Ł jest za Z
lista
.
sort
()
print
(
'Posortowane 1:'
,
lista
)
# Aby posortować w oparciu o alfabet danego języka, trzeba wykonać dwa kroki
# 1) ustawić język porównywania tekstów w ustawieniach regionalnych
import
locale
print
(
'Lokale przed ustawieniem:'
,
locale
.
getlocale
(
locale
.
LC_COLLATE
))
locale
.
setlocale
(
locale
.
LC_COLLATE
,
'pl_PL'
)
# to by oznaczało: użyj ustawień systemowych
# locale.setlocale(locale.LC_COLLATE, '')
print
(
'Lokale po ustawieniu:'
,
locale
.
getlocale
(
locale
.
LC_COLLATE
))
# 2) Do operacji sortującej jako parametr key należy przekazać specjalną funkcję strxfrm
lista
.
sort
(
key
=
locale
.
strxfrm
)
print
(
'Posortowane 2:'
,
lista
)
# etap 3: w pętli użytkownik podaje numer pozycji, a program odczytuje element list
# z podanej pozycji lub informuje, że wyszliśmy poza zakres
# zróbmy tak, że sprawdzimy, czy użytkownik wpisal liczbę,
# a jeśli zamiast liczby wpisał 'koniec', to przerywamy program
while
True
:
s
=
input
(
'Podaj nr pozycji: '
)
if
s
.
lower
()
==
'koniec'
:
break
try
:
i
=
int
(
s
)
print
(
f
'Na pozycji {i} znajduje się {lista[i]}'
)
except
IndexError
:
print
(
'Pozycja poza zakresem'
)
except
ValueError
:
print
(
'Niepoprawna liczba'
)
print
(
'Koniec programu'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment