3: Komentarze i Cudzysłowy

Program komputerowy wygląda jak język kodowania, który jest konieczny, aby komputer dokładnie zrozumiał, co twoje komendy znaczą. Ale, jako język kodowy, w sposób istotny utrudnia ludziom czytanie go. Aby zrekompensować to, możesz pisać w programie dodatkowe notatki dla siebie, a które komputer zignoruje. Notatki te nazywane są komentarzami.

W Pythonie każda linia instrukcji zawierająca symbol # (ang. pound sign lub hash, pl. kratka, krzyżyk, płotek) oznacza początek komentarza,reszta linii zostanie zignorowana po uruchomieniu programu. Oto przykład.

Przykład
Efekt zastosowania komentarza.

Ponieważ druga linia zaczyna się znakiem #, Python całkowicie zignorował tę linię i jak widać, liczba 2 nie została wydrukowana.
Często komentarze stosujemy dla:

  • wyjaśnienia części programu, dla siebie lub innych osób, które będą go czytać później;
  • zrobienia notatek "co jest do zrobienia", podczas pisania długiego programu;
  • tymczasowego wyłączenia ("zakomentować") linii programu bez całkowitego jej usunięcia, dzięki czemu łatwiej później jest ją włączyć z powrotem.

Oto ćwiczenie ilustrujące to. Jeśli edytujesz kod i chcesz przywrócić jego domyślną wersję, wybierz Reset kodu do domyślnego.

Zadanie na kodowanie : Krytycznie Popatrz
Debuguj ten program, który miał obliczać liczbę sekund w ciągu tygodnia. Wskazówka
# goal: print out the number of seconds in a week 
1
# goal: print out the number of seconds in a week 
2
secondsPerMinute = 60
3
secondsPerHour = secondsPerMinute * 50 # do zrobienia: sprawdź to!!
4
secondsPerDay = secondsPerHour * 24
5
daysPerWeek = 5
6
# daysPerWeek = daysPerWeek + 2 # weekends are disabled!?
7
print(secondsPerDay * daysPerWeek)
8
 
 

Łańcuchy

Łańcuchami są sekwencje liter, cyfr, fragmenty tekstu. Dla wyróżnienia są otoczone dwoma znakami cudzysłowami: na przykład w lekcji 0 część pierwszego programu "Hello, World!" była łańcuchem. Jeśli pojawi się w nim znak kratki #, nie zostanie on potraktowany jako rozpoczynający się komentarz:

Przykład
Łańcuch zawiera znak kratki #.

Zachowanie to jest spowodowane tym, że część wewnątrz znaków "", jest łańcuchem znaków, co oznacza, że będzie dosłownie skopiowana i nie będzie interpretowana jako polecenie. Podobnie, polecenie print("3 + 4") nie drukuje liczby 7, tylko łańcuch 3 + 4.

Sekwencje Ucieczki

A co jeśli chcesz umieścić znak " wewnątrz łańcucha? Jeśli spróbujesz wykonać wydruk print("I said "Wow!" to him"), to to przyczyną błędu: problem polega na tym, że Python widzi tylko łańcuch "I said " a potem dopiero Wow!, czego nie uważa już za łańcuch. To nie jest efekt jaki chcieliśmy osiągnąć!

Python ma dwa proste sposoby umieszczania symboli cytatów w łańcuchach

  • Można rozpocząć i zakończyć łańcuch pojedynczym cudzysłowem (apostrofem), np. 'blah blah'. Następnie można podać podwójne cudzysłowy, np. 'I said "Wow!" to him.'
  • Można umieścić znak backslash (ukośnik wsteczny, ukośnik lewy) przed cytatem, a następnie cudzysłów (np. \" lub \'). Nazywamy ten zestaw znaków sekwencją ucieczki. Python usunie backslash, a następnie poda łańcuch w cudzysłowach. Oto przykład:
    Przykład
    Backslashe osłaniają cudzysłowy, ale nie są drukowane.

Ponadto, backslahe (\) w sekwencji ucieczki jest specjalnym znakiem. Zatem, aby zawrzeć ukośnik w łańcuchu, trzeba z nim "uciec" za pomocą drugiego ukośnika, innymi słowy, musisz napisać \\ w łańcuchu znaków.

Zadanie wielokrotnego wyboru: Znaki ucieczki
Co wyświetli poniższy program?
print("Backslashes \\ and single quotes \' and double quotes \" and pound signs # are awesome!")
Bezbłędnie!

Zadanie na kodowanie : Wielka ucieczka
Napisz program, który drukuje to co poniżej:

A double-quote's escaped using a backslash, e.g. \"
Uwaga: istnieje więcej niż jeden sposób na zrobienie tego zadania (jak zwykle)! Na przykład można umieścić cały ciąg między pojedynczymi cudzysłowami lub w podwójnych cudzysłowach. W obu przypadkach nie jest potrzebna ucieczka. Aby zdobyć lepsze doświadczenie, rozwiąż ten problem jedną, a następnie drugą metodą. Czy możesz rozwiązać ten problem jeszcze inną, trzecią metodą?Podpowiedź
1
 
 

Istnieją inne sekwencje ucieczki, takie jak "nowa linia", której nie omówimy teraz. Na razie jesteś gotowy, aby przejść do następnej lekcji!