forked from asweigart/invent-with-python-3rd-indonesian
-
Notifications
You must be signed in to change notification settings - Fork 0
/
chapter5.txt
160 lines (104 loc) · 8.71 KB
/
chapter5.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Bab 5
LELUCON
Cakupan topik dalam bab ini:
• Menggunakan argumen keyword end pada fungsi print()’s untuk melewati newline
• Karakter-karakter escape
• Penggunaan tanda kutip dan tanda kutip ganda pada string
Memanfaatkan print()
Banyak game pada buku ini akan menggunakan teks sederhana sebagai masukan dan keluaran. Masukan diberikan oleh pengguna melalui keyboard yang akan mengirimkannya ke komputer. Setelah itu komputer akan mencetak keluaran berupa teks yang ditampilkan pada layar. Fungsi print() di Python dapat digunakan untuk menampilkan keluaran berbentuk teks pada layar. Tapi masih banyak yang dapat dipelajari dari bagaimana string dan fungsi print() bekerja di Python.
Program dalam bab ini memberikan berbagai lelucon kepada penggunanya.
Contoh Program Lelucon
What do you get when you cross a snowman with a vampire?
Frostbite!
What do dentists call an astronaut's cavity?
A black hole!
Knock knock.
Who's there?
Interrupting cow.
Interrupting cow wh-MOO!
Kode Sumber Program Lelucon
Ketikkan kode sumber berikut menggunakan file editor dan simpan sebagai file jokes.py
PERLU DIPERHATIKAN! Program-program dalam buku ini hanya dapat dijalankan di Python 3. Kamu dapat melihat versi Python yang kamu gunakan dengan melihat angka versi pada jendela IDLE. Jika kamu telah memiliki instalasi Python 2, kamu dapat memiliki instalasi Python 3 dalam satu komputer secara bersamaan. Silakan buka https://python.org/download untuk mengunduh Python 3.
Jika kamu mendapatkan error setelah mengetikkan kode dalam kode sumber berikut, coba bandingkan dengan kode sumber pada buku melalui perangkat diff online di http://invpy.com/id/diff/jokes
jokes.py
1. print('What do you get when you cross a snowman with a vampire?')
2. input()
3. print('Frostbite!')
4. print()
5. print('What do dentists call a astronaut's cavity?')
6. input()
7. print('A black hole!')
8. print()
9. print('Knock knock.')
10. input()
11. print("Who's there?")
12. input()
13. print('Interrupting cow.')
14. input()
15. print('Interrupting cow wh', end='')
16. print('-MOO!')
Jangan khawatir jika kamu tidak mengerti seluruh kode di atas. Simpan dan jalankan program. Ingat, jika program kamu memiliki bug, kamu dapat menggunakan perangkat diff online di http://invpy.com/id/diff/jokes
Alur Kerja Kode
1. print('What do you get when you cross a snowman with a vampire?')
2. input()
3. print('Frostbite!')
4. print()
Baris 1 hingga 4 memiliki tiga pemanggilan fungsi print(). Kamu tidak ingin pemain untuk langsung membaca bagian lucu dari lelucon. Oleh karena itu, terdapat pemanggilan fungsi input() setelah pemanggilan print() pertama. Pemain dapat membaca baris pertama, menekan Enter, lalu membaca bagian lucu dari lelucon.
Pengguna masih dapat mengetikkan string apapun dan menekan Enter. Namun string masukan tidak disimpan pada variabel apapun. Program akan langsung melupakan string tersebut dan lanjut ke baris kode berikutnya.
Pemanggilan fungsi print() terakhir tidak memiliki argumen string apapun. Ini memberitahukan program untuk mencetak sebuah baris kosong. Baris kosong dapat berguna untuk memberikan jarak pada teks agar tidak berantakan.
Karakter-Karakter Escape
5. print('What do dentists call a astronaut's cavity?')
6. input()
7. print('A black hole!')
8. print()
Pada pemanggilan pertama fungsi print() di atas, terdapat sebuah karakter backslash \ tepat sebelum tanda kutip tunggal. Perhatikan bahwa \ adalah backslash, sedangkan / adalah forward slash. Karakter backslash berarti bahwa karakter setelahnya adalah sebuah karakter escape. Karakter escape berguna untuk mencetak karakter-karakter yang sulit dimasukkan ke dalam kode sumber. Pada pemanggilan print() di atas, karakter escape yang digunakan adalah tanda kutip.
Karakter escape untuk tanda kutip tunggal digunakan supaya Python tidak menganggap tanda kutip tunggal tersebut bukan penanda akhir dari string. Python akan mengetahui ketika ada karakter escape untuk tanda kutip tunggal, maka tanda kutip tunggal tersebut merupakan bagian dari string.
Beberapa Karakter Escape Lainnya
Bagaimana jika kamu ingin menampilkan karakter backslash? Baris kode berikut ini tidak akan berhasil:
>>> print('He flew away in a green\teal helicopter.')
Pemanggilan fungsi print() akan mencetak keluaran:
He flew away in a green eal helicopter.
Ini disebabkan karena karakter t pada green\teal dilihat sebagai sebuah karakter escape karena muncul setelah sebuah backslash. Karakter escape t mensimulasikan penekanan tombol Tab pada keyboard. Karakter escape ada sehingga string-string dalam program dapat memiliki karakter-karakter yang tidak dapat diketik.
Supaya dapat mencetak string keluaran berisi \teal, coba masukkan baris berikut:
>>> print('He flew away in a green\\teal helicopter.')
He flew away in a green\teal helicopter.
Table 5-1 adalah daftar karakter-karakter escape dalam Python
Table 5-1: Karakter-Karakter Escape
Karakter Escape Karakter Yang Akan Dicetak
\\ Backslash (\)
\' Tanda kutip tunggal (')
\" Tanda kutip ganda (")
\n Newline
\t Tab
Tanda Kutip Tunggal dan Tanda Kutip Ganda
String-string dalam Python tidak harus selalu berada diantara tanda kutip tunggal. Kamu juga dapat menaruhnya di antara tanda kutip ganda. Kedua baris berikut akan mencetak keluaran yang sama:
>>> print('Hello world')
Hello world
>>> print("Hello world")
Hello world
Namun kamu tidak dapat mencampur aduk tanda kutip. Baris berikut ini akan memberikan error jika kamu mencoba menggunakannya:
>>> print('Hello world")
SyntaxError: EOL while scanning single-quoted string
Aku suka menggunakan tanda kutip tunggal sehingga aku tidak perlu untuk menekan tombol Shift untuk mengetikkannya. Lebih mudah diketik dan Python tidak terlalu peduli akan hal itu.
Sama seperti ketika kamu membutuhkan karakter escape \' untuk dapat mencetak tanda kutip tunggal dalam string, kamu juga akan membutuhkan karakter escape \" supaya dapat memunculkan tanda kutip ganda dalam string. Sebagai contoh, coba lihat kedua baris berikut:
>>> print('I asked to borrow Abe\'s car for a week. He said, "Sure."')
I asked to borrow Abe's car for a week. He said, "Sure."
>>> print("He said, \"I can’t believe you let him borrow your car.\"")
He said, "I can’t believe you let him borrow your car."
Pada string dengan tanda kutip tunggal, kamu tidak perlu menambahkan karakter escape terhadap tanda kutip ganda. Begitu pula pada string dengan tanda kutip ganda. Kamu tidak perlu menambahkan karakter escape terhadap tanda kutip tunggal. Interpreter Python cukup pintar untuk mengetahui tanda kutip yang digunakan untuk membuat string dengan tanda kutip yang menjadi bagian dari string.
Argumen Keyword end
9. print('Knock knock.')
10. input()
11. print("Who's there?")
12. input()
13. print('Interrupting cow.')
14. input()
15. print('Interrupting cow wh', end='')
16. print('-MOO!')
Apakah kamu memperhatikan parameter kedua pada pemanggilan fungsi print() di baris 15? Biasanya, print() menambahkan karakter newline di akhir string yang dicetak. Inilah penyebab pemanggilan print() kosong akan mencetak sebuah newline. Namun fungsi print() bisa diberikan parameter kedua, yaitu "end".
String kosong yang dimasukkan disebut sebagai argumen keyword. Parameter end memiliki nama parameter. Untuk memasukkan sebuah argumen kepada suatu parameter, kita butuh menggunakan sintaks end=.
Dengan memasukkan string kosong sebagai nilai argumen end, fungsi print() tidak akan menambahkan karakter newline di akhir string. Inilah penyebab string '-MOO!' muncul di sebelah baris keluaran string sebelumnya. Ketika mencetak 'Interrupting cow wh', di akhir string tidak ada karakter newline.
Ringkasan
Bab ini menjelaskan berbagai cara penggunaan fungsi print(). Karakter escape digunakan untuk karakter-karakter yang sulit atau tidak mungkin dimasukkan ke dalam kode. Karakter escape diketikkan sebagai sebuah string yand diawali dengan karakter backslash \ kemudian diikuti dengan sebuah huruf yang mewakili karakter escape. Sebagai contoh, \n merupakan sebuah newline. Agar dapat memasukkan backslash dalam sebuah string, kamu dapat menggunakan karakter escape \\.
Fungsi print() secara otomatis menambahkan sebuah karakter newline pada ujung string yang kita masukkan agar ditampilkan pada layar. Seringkali ini merupakan cara cepat yang sangat membantu. Namun terkadang kamu tidak ingin ada sebuah karakter newline di akhir string. Kamu dapat merubahnya dengan memasukkan argumen keyword end yang berisi string kosong. Sebagai contoh, jika ingin mencetak "spam" di layar tanpa karakter newline, maka kamu dapat melakukannya dengan memanggil print('spam', end='').
Dengan menambahkan kendali terhadap teks yang ditampilkan pada layar, kamu dapat lebih fleksibel dalam cara menampilkan teks.