Zadanie3 #28

Closed
s407228 wants to merge 18 commits from s407228/DALGLI0:Zadanie3 into master
First-time contributor
No description provided.
Owner

Proszę

  1. użyć pythona 3
  2. przygotować wersję wsadową (bez interakcji z użytkownikiem), najlepiej posługując się idiomem if __name__ == "__main__": (https://docs.python.org/3/library/main.html)
  3. podoba mi się, że jest i binarnie i Ascii, ale sprawdzenie? dlaczego tyle razy true??
  4. No i na samym końcu: FCS dla "Hello world!" powinno być 0x4591(jako 16 bitowa sekwencja, tutaj jest 0x09db, o ile czytam w odpowiedni sposób

W razie wątpliwości zapraszam na dyżur w środę o 12:00.

Proszę 1. użyć pythona 3 2. przygotować wersję wsadową (bez interakcji z użytkownikiem), najlepiej posługując się idiomem `if __name__ == "__main__":` (https://docs.python.org/3/library/__main__.html) 3. podoba mi się, że jest i binarnie i Ascii, ale sprawdzenie? dlaczego tyle razy `true`?? 4. No i na samym końcu: FCS dla "Hello world!" powinno być `0x4591`(jako 16 bitowa sekwencja, tutaj jest `0x09db`, o ile czytam w odpowiedni sposób W razie wątpliwości zapraszam na dyżur w środę o 12:00.
Author
First-time contributor

Przygotowałam wersję wsadową, aby uruchomić z konsoli należy wpisać np.
python Zadanie3.py "hello world" encode
Jeśli chodzi o sprawdzenie, to było ono zrobione w bardzo prymitywny sposób(aż trochę mi wstyd :) ), jest już poprawione i wyświetla się raz.
Niestety, nie udało mi się póki co dojść dlaczego program zwraca błędny wynik dla "Hello world!"

Przygotowałam wersję wsadową, aby uruchomić z konsoli należy wpisać np. python Zadanie3.py "hello world" encode Jeśli chodzi o sprawdzenie, to było ono zrobione w bardzo prymitywny sposób(aż trochę mi wstyd :) ), jest już poprawione i wyświetla się raz. Niestety, nie udało mi się póki co dojść dlaczego program zwraca błędny wynik dla "Hello world!"
Owner

świetnie, brakuje oczywiście decode, która pozwoli sprawdzić fcs.

podobało mi się, że jest hex raczej niż że jest ascii, bo wynik (fcs) nie mieści się w tradycyjnym ascii. tak naprawdę całość trzeba zamienić na bytearray: bytearray(message, 'ascii') a dwa bajty fcs należy .append(...) do tej tablicy.

dekodując proszę dwa ostatnie bajty obciąć (bo nie muszą zawierać znaków tablicy ascii):

message = input[0:-2].decode('ascii')
fcs = input[-2:0]

No i oczywiście proszę sprawić, żeby wynik dla Hello world! był poprawny!

świetnie, brakuje oczywiście `decode`, która pozwoli sprawdzić fcs. podobało mi się, że jest hex raczej niż że jest ascii, bo wynik (fcs) nie mieści się w tradycyjnym ascii. tak naprawdę całość trzeba zamienić na `bytearray`: `bytearray(message, 'ascii')` a dwa bajty fcs należy `.append(...)` do tej tablicy. dekodując proszę dwa ostatnie bajty obciąć (bo nie muszą zawierać znaków tablicy ascii): ```python message = input[0:-2].decode('ascii') fcs = input[-2:0] ``` No i oczywiście proszę sprawić, żeby wynik dla `Hello world!` był poprawny!
Author
First-time contributor

Encode nareszcie działa! Np.
python Zadanie3.py "Hello world!" encode

python Zadanie3.py "Hello world!" decode "BD22" - powinno zwrócić true

python Zadanie3.py "Hello world!" decode "BD23" - powinno zwrócić false

Encode nareszcie działa! Np. python Zadanie3.py "Hello world!" encode python Zadanie3.py "Hello world!" decode "BD22" - powinno zwrócić true python Zadanie3.py "Hello world!" decode "BD23" - powinno zwrócić false
Owner
$ git checkout s407228/Zadanie3
HEAD is now at b8a9238 Update 'Zadanie3'
$ python Zadanie3 "Hello world" encode     
calosc :  Hello world4591
crc :  4591
$ python Zadanie3 "Hello world" decode 4591
false

Prosiłbym również żeby program był w stanie swój własny output sparsować;

no i calosc : Hello world4591 nie jest z pewnością poprawną odpowiedzią. jest o cztery znaki dłuższa niż wiadomość; proszę użyć bytearray w celu przechowywania/zwracania odpowiedzi.

```bash $ git checkout s407228/Zadanie3 HEAD is now at b8a9238 Update 'Zadanie3' $ python Zadanie3 "Hello world" encode calosc : Hello world4591 crc : 4591 $ python Zadanie3 "Hello world" decode 4591 false ``` Prosiłbym również żeby program był w stanie swój własny output sparsować; no i `calosc : Hello world4591` nie jest z pewnością poprawną odpowiedzią. jest o cztery znaki dłuższa niż wiadomość; proszę użyć `bytearray` w celu przechowywania/zwracania odpowiedzi.
Author
First-time contributor

Wynik funkcji decode jest już prawidłowy(przynajmniej w testowanych przeze mnie przypadkach).
Funkcja encode przyjmuje i zwraca typ bytearray(zgodnie z sugestią). Dodatkowo sprawdza ona od razu swój własny output.
Przykładowy input:
python3 Zadanie3.py "Hello world" encode
python3 Zadanie3 "Hello world" decode 4591

Wynik funkcji decode jest już prawidłowy(przynajmniej w testowanych przeze mnie przypadkach). Funkcja encode przyjmuje i zwraca typ bytearray(zgodnie z sugestią). Dodatkowo sprawdza ona od razu swój własny output. Przykładowy input: python3 Zadanie3.py "Hello world" encode python3 Zadanie3 "Hello world" decode 4591
Owner

tak na przyszłość, proszę nie zazywać 10 commitów Update 'Zadanie3' ;-) commit message powinien powiedzieć Pani (i przynajmniej częściowo i mnie) co zostało zmienione bez patrzenia do zmian w poszczególnych plikach. Kod obejrzę dopiero jutro, jest już późno...

tak na przyszłość, proszę nie zazywać 10 commitów `Update 'Zadanie3'` ;-) commit message powinien powiedzieć Pani (i przynajmniej częściowo i mnie) co zostało zmienione bez patrzenia do zmian w poszczególnych plikach. Kod obejrzę dopiero jutro, jest już późno...
Owner
python Zadanie3 "Hello_worldddddddd" encode 
Traceback (most recent call last):
  File "Zadanie3", line 160, in <module>
    main()
  File "Zadanie3", line 155, in main
    encode(sys.argv[1])
  File "Zadanie3", line 141, in encode
    d=str(base64.b16decode(ab))[2:-1]
  File "/usr/lib/python3.6/base64.py", line 275, in b16decode
    return binascii.unhexlify(s)
binascii.Error: Odd-length string
```bash python Zadanie3 "Hello_worldddddddd" encode Traceback (most recent call last): File "Zadanie3", line 160, in <module> main() File "Zadanie3", line 155, in main encode(sys.argv[1]) File "Zadanie3", line 141, in encode d=str(base64.b16decode(ab))[2:-1] File "/usr/lib/python3.6/base64.py", line 275, in b16decode return binascii.unhexlify(s) binascii.Error: Odd-length string ```
kalmar closed this pull request 2018-07-01 00:03:42 +02:00
Owner

Byłoby dobrze, gdyby Pani przestudiowała kod kolegów/koleżanek wraz z moimi uwagami, w jaki sposób można to zrobić bez bawienia się na stringach. Ale oczywiście do niczego Pani po wystawieniu ocen nie zmuszę ;-)

Byłoby dobrze, gdyby Pani przestudiowała kod kolegów/koleżanek wraz z moimi uwagami, w jaki sposób można to zrobić bez bawienia się na stringach. Ale oczywiście do niczego Pani po wystawieniu ocen nie zmuszę ;-)

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kalmar/DALGLI0#28
No description provided.