• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PYTHON - zadanie - ASCII message

0 głosów
44 wizyt
pytanie zadane 5 dni temu w Python przez mewtwo Użytkownik (780 p.)

Macie jakieś pomysły jeżeli chodzi o sprawdzanie czy wartość można przekonwertować a następnie czy znajduję się w zakresie 0 - 127 ? Z góry dziękuje za odpowiedź. 

Do sprawdzania czy można przekonwertować wymyśliłem:

    try: 
        with open(file) as file: 
            data = file.read()
            
        for i in data.split('\n')
            int(i)

    except ValueError: 
        return 2

do funkcji convertData() przekazano przez parametr file nazwę pewnego pliku. W każdym wierszu plik powinien zawierać kody znaków z tabeli ASCII oddzielone od siebie spacjami. Liczby z poszczególnych wierszy po zamianie na odpowiadające im znaki z tabeli ASCII tworzą wyrazy. Zapisz każdy z tych wyrazów w kolejnych wierszach w pliku "message.txt". Po wykonaniu tej operacji, funkcja powinna zwrócić wartość 0 (zero), oznaczającą, że działanie zakończyło się sukcesem.  

Jeżeli program nie odnajdzie pliku z danymi, funkcja powinna zwrócić wartość 1.

Jeżeli plik istnieje, ale zawiera dane, których nie można przekonwertować na typ int, funkcja powinna zwrócić wartość 2. 

Jeżeli plik istnieje i zawiera dane, które można przekonwertować na typ int, ale otrzymane wartości są spoza zakresu znaków kodu ASCII (0 - 127), funkcja powinna zwrócić wartość 3. 

Uwaga: po ostatnim zapisanym wyrazie w pliku nie powinno być przejścia do nowego wiersza.

Przykłady:

1. 
Wejście: "data.txt"

data.txt:

77 79 78 84 89
80 89 84 72 79 78


Wyjście: 0

message.txt:

MONTY
PYTHON


2. 
Wejście: "data.txt"

liczby.txt:

77 79 78 84 89
80 89 84 72 79 78


Wyjście: 1

3. 
Wejście: "data.txt"

data.txt:

77 79 78 T Y⤶
80 89 84 72 79 78


Wyjście: 2

4. 
Wejście: "data.txt"

data.txt:

77 79 78 -10 -5⤶
80 89 84 72 79 78


Wyjście: 3

Kod do zadania (mojego autorstwa):

def convertData(file):
    
    try: 
        with open(file) as file:
            data = file.readlines()
                
    except IOError:
        return 1
    
    except ValueError: 
        return 2
    
   return 0

 

1 odpowiedź

0 głosów
odpowiedź 1 dzień temu przez VBService Mędrzec (162,950 p.)
edycja 1 dzień temu przez VBService

Możesz przez "utworzenie" niestandardowego wyjątku (Custom Exceptions) zwrócić wartość kodu błędu 3 (return 3)

 

przykład  [ on-line ]


class Error(Exception):
    """Base class for other exceptions"""
    pass

class ValueIsNotInRange(Error): pass

def convertData(file):
    try: 
        with open(file, 'r') as file:
            data = file.readlines()
    
        message = ""
        for row in data:
            for code in row.split(' '):
                if int(code.rstrip('\n')) in range(128):
                    message += chr(int(code)) if not '\n' in code else chr(int(code)) + '\n'
                else:
                    raise ValueIsNotInRange # return 3

        with open("message.txt", 'w') as file:
            file.write(message)

    except IOError:
        return 1
    except ValueError: 
        return 2
    except ValueIsNotInRange:
        return 3

    return 0
    
print(convertData("data.txt"))   # return 0
print(convertData("liczby.txt")) # return 1
print(convertData("data2.txt"))  # return 2
print(convertData("data3.txt"))  # return 3
data.txt
77 79 78 84 89
80 89 84 72 79 78

data2.txt
77 79 78 T Y
80 89 84 72 79 78

data3.txt
77 79 78 127 0 -1 128
80 89 84 72 79 78

 

Podobne pytania

0 głosów
0 odpowiedzi 64 wizyt
pytanie zadane 24 listopada 2020 w Python przez ninjapolski2 Początkujący (260 p.)
0 głosów
3 odpowiedzi 489 wizyt
pytanie zadane 6 stycznia 2018 w C i C++ przez UmbertoF Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 539 wizyt

87,942 zapytań

136,520 odpowiedzi

304,384 komentarzy

58,306 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...