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:
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