Apakah python menggunakan casing unta?

Alat berikut memvisualisasikan apa yang dilakukan komputer langkah demi langkah saat menjalankan program tersebut


Editor Kode Python

Punya cara lain untuk menyelesaikan solusi ini?

Sebelumnya. Tulis program Python untuk mengubah nilai komponen RGB menjadi kode warna heksadesimal
Lanjut. Tulis program Python untuk mengonversi string yang diberikan ke kasus ular

Berapa tingkat kesulitan latihan ini?

Mudah Sedang Keras

Uji keterampilan Pemrograman Anda dengan kuis w3resource



Ikuti kami di Facebook dan Twitter untuk pembaruan terkini.

Piton. Kiat Hari Ini

Pembagi persekutuan terbesar

Pustaka matematika standar Python memiliki metode hebat yang membuat hampir semua perhitungan matematika dasar menjadi mudah. Disini adalah. metode gcd() menunjukkan pembagi bersama terbesar

PEP 8, terkadang dieja PEP8 atau PEP-8, adalah dokumen yang memberikan panduan dan praktik terbaik tentang cara menulis kode Python. Itu ditulis pada tahun 2001 oleh Guido van Rossum, Barry Warsawa, dan Nick Coghlan. Fokus utama PEP 8 adalah untuk meningkatkan keterbacaan dan konsistensi kode Python

PEP adalah singkatan dari Python Enhancement Proposal, dan ada beberapa di antaranya. PEP adalah dokumen yang menjelaskan fitur baru yang diusulkan untuk Python dan mendokumentasikan aspek Python, seperti desain dan gaya, untuk komunitas

Tutorial ini menguraikan pedoman utama yang tercantum dalam PEP 8. Ini ditujukan untuk pemrogram pemula hingga menengah, dan karena itu saya belum membahas beberapa topik yang paling canggih. Anda dapat mempelajarinya dengan membaca dokumentasi lengkap PEP 8

Di akhir tutorial ini, Anda akan bisa

  • Tulis kode Python yang sesuai dengan PEP 8
  • Pahami alasan di balik pedoman yang diatur dalam PEP 8
  • Siapkan lingkungan pengembangan Anda sehingga Anda dapat mulai menulis kode Python yang sesuai dengan PEP 8

Bonus Gratis. 5 Pemikiran Tentang Python Mastery, kursus gratis untuk pengembang Python yang menunjukkan kepada Anda peta jalan dan pola pikir yang Anda perlukan untuk meningkatkan keterampilan Python Anda ke tingkat berikutnya

Mengapa Kita Membutuhkan PEP 8

“Keterbacaan itu penting. ”

— Zen Python

PEP 8 ada untuk meningkatkan keterbacaan kode Python. Tetapi mengapa keterbacaan begitu penting?

Seperti yang dikatakan Guido van Rossum, “Kode lebih sering dibaca daripada ditulis. ” Anda mungkin menghabiskan beberapa menit, atau sepanjang hari, menulis sepotong kode untuk memproses autentikasi pengguna. Setelah Anda menulisnya, Anda tidak akan pernah menulisnya lagi. Tapi Anda pasti harus membacanya lagi. Sepotong kode itu mungkin tetap menjadi bagian dari proyek yang sedang Anda kerjakan. Setiap kali Anda kembali ke file itu, Anda harus mengingat apa yang dilakukan kode itu dan mengapa Anda menulisnya, jadi keterbacaan itu penting

Jika Anda baru mengenal Python, mungkin sulit untuk mengingat apa yang dilakukan sepotong kode beberapa hari, atau minggu, setelah Anda menulisnya. Jika Anda mengikuti PEP 8, Anda dapat yakin bahwa Anda telah menamai variabel Anda dengan baik. Anda akan tahu bahwa Anda telah menambahkan cukup spasi sehingga lebih mudah untuk mengikuti langkah-langkah logis dalam kode Anda. Anda juga akan mengomentari kode Anda dengan baik. Semua ini berarti kode Anda lebih mudah dibaca dan lebih mudah untuk kembali. Sebagai seorang pemula, mengikuti aturan PEP 8 dapat membuat belajar Python menjadi tugas yang jauh lebih menyenangkan

Mengikuti PEP 8 sangat penting jika Anda sedang mencari pekerjaan pengembangan. Menulis kode yang jelas dan mudah dibaca menunjukkan profesionalisme. Ini akan memberi tahu pemberi kerja bahwa Anda memahami cara menyusun kode Anda dengan baik

Jika Anda memiliki lebih banyak pengalaman menulis kode Python, Anda mungkin perlu berkolaborasi dengan orang lain. Menulis kode yang dapat dibaca di sini sangat penting. Orang lain, yang mungkin belum pernah bertemu dengan Anda atau melihat gaya pengkodean Anda sebelumnya, harus membaca dan memahami kode Anda. Memiliki pedoman yang Anda ikuti dan kenali akan memudahkan orang lain membaca kode Anda

Hilangkan iklan

Konvensi Penamaan

“Eksplisit lebih baik daripada implisit. ”

— Zen Python

Saat Anda menulis kode Python, Anda harus menyebutkan banyak hal. variabel, fungsi, kelas, paket, dan sebagainya. Memilih nama yang masuk akal akan menghemat waktu dan tenaga Anda nantinya. Anda akan dapat mengetahui, dari namanya, apa yang diwakili oleh variabel, fungsi, atau kelas tertentu. Anda juga akan menghindari penggunaan nama yang tidak pantas yang dapat mengakibatkan kesalahan yang sulit di-debug

Catatan. Jangan pernah menggunakan

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
7,
class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
8, atau
class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
9 nama huruf tunggal karena dapat disalahartikan sebagai
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
0 dan
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
1, tergantung pada jenis huruf

O = 2  # This may look like you're trying to reassign 2 to zero

Penamaan Gaya

Tabel di bawah menguraikan beberapa gaya penamaan umum dalam kode Python dan kapan Anda harus menggunakannya

Ketik Konvensi PenamaanContohFungsiGunakan kata atau kata dengan huruf kecil. Pisahkan kata dengan garis bawah untuk meningkatkan keterbacaan.

def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
2,
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
3VariabelGunakan satu huruf kecil, kata, atau kata-kata. Pisahkan kata dengan garis bawah untuk meningkatkan keterbacaan.
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
4,
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
5,
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
6KelasMulai setiap kata dengan huruf kapital. Jangan memisahkan kata dengan garis bawah. Gaya ini disebut kasing unta atau kasing pascal.
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
7,
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
8Metode Gunakan huruf kecil atau beberapa kata. Pisahkan kata dengan garis bawah untuk meningkatkan keterbacaan.
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
9,
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
0ConstantGunakan satu huruf besar, kata, atau kata-kata. Pisahkan kata dengan garis bawah untuk meningkatkan keterbacaan.
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
1,
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
2,
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
3ModulGunakan kata pendek atau huruf kecil. Pisahkan kata dengan garis bawah untuk meningkatkan keterbacaan.
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
4,
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
5KemasanGunakan kata pendek atau huruf kecil. Jangan memisahkan kata dengan garis bawah.
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
6,
def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one
7

Ini adalah beberapa konvensi penamaan umum dan contoh cara menggunakannya. Namun untuk menulis kode yang dapat dibaca, Anda tetap harus berhati-hati dengan pilihan huruf dan kata. Selain memilih gaya penamaan yang benar dalam kode Anda, Anda juga harus memilih nama dengan hati-hati. Di bawah ini adalah beberapa petunjuk tentang cara melakukan ini seefektif mungkin

Cara Memilih Nama

Memilih nama untuk variabel, fungsi, kelas, dan sebagainya dapat menjadi tantangan. Anda harus cukup memikirkan pilihan penamaan Anda saat menulis kode karena itu akan membuat kode Anda lebih mudah dibaca. Cara terbaik untuk menamai objek Anda dengan Python adalah dengan menggunakan nama deskriptif untuk memperjelas objek yang diwakilinya

Saat memberi nama variabel, Anda mungkin tergoda untuk memilih nama huruf kecil satu huruf yang sederhana, seperti

def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
4. Tapi, kecuali jika Anda menggunakan
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
_4 sebagai argumen dari fungsi matematika, tidak jelas apa yang diwakili oleh
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
4. Bayangkan Anda menyimpan nama seseorang sebagai string, dan Anda ingin menggunakan pengiris string untuk memformat nama mereka secara berbeda. Anda bisa berakhir dengan sesuatu seperti ini

>>>

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_

Ini akan berhasil, tetapi Anda harus melacak apa yang

def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
4,
from mypkg import example1, \
    example2, example3
2, dan
from mypkg import example1, \
    example2, example3
3 mewakili. Mungkin juga membingungkan bagi kolaborator. Pilihan nama yang lebih jelas akan menjadi seperti ini

>>>

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
_

Demikian pula, untuk mengurangi jumlah pengetikan yang Anda lakukan, Anda mungkin tergoda untuk menggunakan singkatan saat memilih nama. Dalam contoh di bawah ini, saya telah mendefinisikan fungsi

from mypkg import example1, \
    example2, example3
4 yang menggunakan argumen tunggal
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
4 dan menggandakannya

# Not recommended
def db(x):
    return x * 2

Sepintas, ini mungkin tampak seperti pilihan yang masuk akal.

from mypkg import example1, \
    example2, example3
_4 bisa dengan mudah menjadi singkatan untuk ganda. Tapi bayangkan kembali ke kode ini dalam beberapa hari. Anda mungkin telah lupa apa yang ingin Anda capai dengan fungsi ini, dan itu akan membuat sulit menebak bagaimana Anda menyingkatnya.

Contoh berikut jauh lebih jelas. Jika Anda kembali ke kode ini beberapa hari setelah menulisnya, Anda masih dapat membaca dan memahami tujuan dari fungsi ini

# Recommended
def multiply_by_two(x):
    return x * 2

Filosofi yang sama berlaku untuk semua tipe data dan objek lainnya di Python. Selalu coba gunakan nama yang paling ringkas namun deskriptif

Hilangkan iklan

Tata Letak Kode

“Cantik lebih baik daripada jelek. ”

— Zen Python

Bagaimana Anda menyusun kode Anda memiliki peran besar dalam seberapa mudah dibaca. Di bagian ini, Anda akan mempelajari cara menambahkan spasi vertikal untuk meningkatkan keterbacaan kode Anda. Anda juga akan mempelajari cara menangani batas baris 79 karakter yang direkomendasikan di PEP 8

Garis Kosong

Spasi kosong vertikal, atau baris kosong, dapat sangat meningkatkan keterbacaan kode Anda. Kode yang digabungkan menjadi satu dapat membuat Anda kewalahan dan sulit dibaca. Demikian pula, terlalu banyak baris kosong dalam kode Anda membuatnya terlihat sangat jarang, dan pembaca mungkin perlu menggulir lebih dari yang diperlukan. Di bawah ini adalah tiga panduan utama tentang cara menggunakan spasi vertikal

Kelilingi fungsi dan kelas tingkat atas dengan dua baris kosong. Fungsi dan kelas tingkat atas harus cukup mandiri dan menangani fungsionalitas terpisah. Masuk akal untuk menempatkan ruang vertikal tambahan di sekitar mereka, sehingga jelas mereka terpisah

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None

Mengelilingi definisi metode di dalam kelas dengan satu baris kosong. Di dalam kelas, semua fungsi terkait satu sama lain. Merupakan praktik yang baik untuk hanya menyisakan satu baris di antara mereka

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None

Gunakan baris kosong dengan hemat di dalam fungsi untuk menunjukkan langkah-langkah yang jelas. Terkadang, fungsi yang rumit harus menyelesaikan beberapa langkah sebelum pernyataan

from mypkg import example1, \
    example2, example3
7. Untuk membantu pembaca memahami logika di dalam fungsi, sebaiknya tinggalkan baris kosong di antara setiap langkah

Pada contoh di bawah ini, terdapat sebuah fungsi untuk menghitung varian dari suatu daftar. Ini adalah masalah dua langkah, jadi saya telah menunjukkan setiap langkah dengan meninggalkan baris kosong di antaranya. Ada juga baris kosong sebelum pernyataan

from mypkg import example1, \
    example2, example3
7. Ini membantu pembaca melihat dengan jelas apa yang dikembalikan

def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2

Jika Anda menggunakan spasi vertikal dengan hati-hati, ini dapat sangat meningkatkan keterbacaan kode Anda. Ini membantu pembaca memahami secara visual bagaimana kode Anda dibagi menjadi beberapa bagian, dan bagaimana bagian tersebut berhubungan satu sama lain

Panjang Garis Maksimum dan Pemutusan Garis

PEP 8 menyarankan baris harus dibatasi hingga 79 karakter. Ini karena ini memungkinkan Anda untuk membuka banyak file di samping satu sama lain, sekaligus menghindari pembungkusan baris

Tentu saja, mempertahankan pernyataan hingga 79 karakter atau kurang tidak selalu memungkinkan. PEP 8 menguraikan cara untuk mengizinkan pernyataan berjalan di beberapa baris

Python akan mengasumsikan kelanjutan baris jika kode berada di dalam tanda kurung, tanda kurung, atau tanda kurung

def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one

Jika tidak mungkin menggunakan kelanjutan tersirat, maka Anda dapat menggunakan garis miring terbalik untuk memutus garis

from mypkg import example1, \
    example2, example3

Namun, jika Anda dapat menggunakan kelanjutan tersirat, maka Anda harus melakukannya

Jika pemutusan garis harus terjadi di sekitar operator biner, seperti

from mypkg import example1, \
    example2, example3
9 dan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
00, itu harus terjadi sebelum operator. Aturan ini berasal dari matematika. Matematikawan setuju bahwa melanggar sebelum operator biner meningkatkan keterbacaan. Bandingkan dua contoh berikut

Di bawah ini adalah contoh pemecahan sebelum operator biner

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_0

Anda dapat langsung melihat variabel mana yang ditambahkan atau dikurangi, karena operator berada tepat di sebelah variabel yang sedang dioperasikan

Sekarang, mari kita lihat contoh pemecahan setelah operator biner

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_1

Di sini, lebih sulit untuk melihat variabel mana yang ditambahkan dan mana yang dikurangi

Melanggar sebelum operator biner menghasilkan kode yang lebih mudah dibaca, jadi PEP 8 mendorongnya. Kode yang secara konsisten rusak setelah operator biner masih mematuhi PEP 8. Namun, Anda dianjurkan untuk istirahat sebelum operator biner

Hilangkan iklan

Lekukan

“Seharusnya ada satu—dan sebaiknya hanya satu—cara yang jelas untuk melakukannya. ”

— Zen Python

Lekukan, atau spasi putih terdepan, sangat penting dalam Python. Tingkat lekukan baris kode di Python menentukan bagaimana pernyataan dikelompokkan bersama

Perhatikan contoh berikut

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_2

Pernyataan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_01 yang menjorok ke dalam memberi tahu Python bahwa itu seharusnya hanya dijalankan jika pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02 mengembalikan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
03. Lekukan yang sama berlaku untuk memberi tahu Python kode apa yang harus dieksekusi ketika suatu fungsi dipanggil atau kode apa yang termasuk dalam kelas tertentu

Aturan lekukan utama yang ditetapkan oleh PEP 8 adalah sebagai berikut

  • Gunakan 4 spasi berurutan untuk menunjukkan lekukan
  • Lebih suka spasi daripada tab

Tab vs. Spasi

Seperti disebutkan di atas, Anda harus menggunakan spasi alih-alih tab saat membuat indentasi kode. Anda dapat menyesuaikan pengaturan di editor teks Anda untuk menampilkan 4 spasi alih-alih karakter tab, saat Anda menekan tombol Tab .

Jika Anda menggunakan Python 2 dan telah menggunakan campuran tab dan spasi untuk memasukkan kode Anda, Anda tidak akan melihat kesalahan saat mencoba menjalankannya. Untuk membantu Anda memeriksa konsistensi, Anda dapat menambahkan bendera

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
04 saat menjalankan kode Python 2 dari baris perintah. Penerjemah akan mengeluarkan peringatan saat Anda tidak konsisten dengan penggunaan tab dan spasi

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_3

Sebaliknya, jika Anda menggunakan flag

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_05, juru bahasa akan mengeluarkan kesalahan alih-alih peringatan, dan kode Anda tidak akan berjalan. Manfaat menggunakan metode ini adalah juru bahasa memberi tahu Anda di mana ketidakkonsistenannya

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_4

Python 3 tidak mengizinkan pencampuran tab dan spasi. Oleh karena itu, jika Anda menggunakan Python 3, kesalahan ini dikeluarkan secara otomatis

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_5

Anda dapat menulis kode Python dengan tab atau spasi yang menunjukkan lekukan. Tapi, jika Anda menggunakan Python 3, Anda harus konsisten dengan pilihan Anda. Jika tidak, kode Anda tidak akan berjalan. PEP 8 menganjurkan agar Anda selalu menggunakan 4 spasi berurutan untuk menunjukkan lekukan

Lekukan Mengikuti Jeda Baris

Saat Anda menggunakan kelanjutan baris untuk mempertahankan baris di bawah 79 karakter, sebaiknya gunakan lekukan untuk meningkatkan keterbacaan. Ini memungkinkan pembaca untuk membedakan antara dua baris kode dan satu baris kode yang mencakup dua baris. Ada dua gaya lekukan yang dapat Anda gunakan

Yang pertama adalah menyelaraskan blok yang terindentasi dengan pembatas pembuka

def function(arg_one, arg_two,
             arg_three, arg_four):
    return arg_one

Kadang-kadang Anda dapat menemukan bahwa hanya diperlukan 4 spasi untuk menyelaraskan dengan pembatas pembuka. Ini akan sering terjadi pada pernyataan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_02 yang mencakup banyak baris karena
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02, spasi, dan kurung buka membentuk 4 karakter. Dalam hal ini, mungkin sulit untuk menentukan di mana blok kode bersarang di dalam pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02 dimulai

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_7

Dalam hal ini, PEP 8 menyediakan dua alternatif untuk membantu meningkatkan keterbacaan

  • Tambahkan komentar setelah kondisi terakhir. Karena penyorotan sintaks di sebagian besar editor, ini akan memisahkan kondisi dari kode bersarang

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _8

  • Tambahkan lekukan ekstra pada sambungan baris

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _9

Gaya indentasi alternatif setelah jeda baris adalah indentasi gantung. Ini adalah istilah tipografi yang berarti bahwa setiap baris kecuali yang pertama dalam paragraf atau pernyataan diindentasi. Anda dapat menggunakan indentasi gantung untuk merepresentasikan kelanjutan baris kode secara visual. Ini sebuah contoh

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
0

Catatan. Saat Anda menggunakan indentasi gantung, tidak boleh ada argumen apa pun di baris pertama. Contoh berikut tidak sesuai dengan PEP 8

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
1

Saat menggunakan indentasi gantung, tambahkan indentasi ekstra untuk membedakan baris lanjutan dari kode yang terdapat di dalam fungsi. Contoh berikut sulit dibaca karena kode di dalam fungsi berada pada level indentasi yang sama dengan baris lanjutan

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
2

Sebaliknya, lebih baik menggunakan indentasi ganda pada kelanjutan garis. Ini membantu Anda membedakan antara argumen fungsi dan badan fungsi, meningkatkan keterbacaan

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
3

Saat Anda menulis kode yang sesuai dengan PEP 8, batas baris 79 karakter memaksa Anda untuk menambahkan jeda baris dalam kode Anda. Untuk meningkatkan keterbacaan, Anda harus mengindentasi baris bersambung untuk menunjukkan bahwa itu adalah baris bersambung. Ada dua cara untuk melakukan hal ini. Yang pertama adalah menyelaraskan blok yang terindentasi dengan pembatas pembuka. Yang kedua adalah menggunakan indentasi gantung. Anda bebas memilih metode indentasi mana yang Anda gunakan setelah jeda baris

Hilangkan iklan

Tempat Menempatkan Penjepit Penutup

Kelanjutan garis memungkinkan Anda untuk memutus garis di dalam tanda kurung, tanda kurung, atau tanda kurung. Sangat mudah untuk melupakan kurung kurawal penutup, tetapi penting untuk meletakkannya di tempat yang masuk akal. Kalau tidak, itu bisa membingungkan pembaca. PEP 8 menyediakan dua opsi untuk posisi penjepit penutup dalam kelanjutan garis tersirat

  • Sejajarkan kurung kurawal penutup dengan karakter bukan spasi pertama dari baris sebelumnya

    >>> # Recommended
    >>> name = 'John Smith'
    >>> first_name, last_name = name.split()
    >>> print(last_name, first_name, sep=', ')
    'Smith, John'
    
    4

  • Sejajarkan kurung kurawal penutup dengan karakter pertama dari baris yang memulai konstruk

    >>> # Recommended
    >>> name = 'John Smith'
    >>> first_name, last_name = name.split()
    >>> print(last_name, first_name, sep=', ')
    'Smith, John'
    
    5

Anda bebas memilih opsi mana yang Anda gunakan. Namun, seperti biasa, konsistensi adalah kuncinya, jadi cobalah untuk tetap menggunakan salah satu metode di atas

Komentar

“Jika penerapannya sulit dijelaskan, itu ide yang buruk. ”

— Zen Python

Anda harus menggunakan komentar untuk mendokumentasikan kode seperti yang tertulis. Penting untuk mendokumentasikan kode Anda sehingga Anda, dan semua kolaborator, dapat memahaminya. Saat Anda atau orang lain membaca komentar, mereka harus dapat dengan mudah memahami kode yang berlaku untuk komentar tersebut dan bagaimana kesesuaiannya dengan kode Anda yang lain

Berikut beberapa poin penting yang perlu diingat saat menambahkan komentar ke kode Anda

  • Batasi panjang baris komentar dan dokumen menjadi 72 karakter
  • Gunakan kalimat lengkap, dimulai dengan huruf kapital
  • Pastikan untuk memperbarui komentar jika Anda mengubah kode Anda

Blokir Komentar

Gunakan komentar blokir untuk mendokumentasikan sebagian kecil kode. Mereka berguna saat Anda harus menulis beberapa baris kode untuk melakukan satu tindakan, seperti mengimpor data dari file atau memperbarui entri database. Mereka penting karena membantu orang lain memahami tujuan dan fungsi dari blok kode yang diberikan

PEP 8 memberikan aturan berikut untuk menulis komentar blok

  • Inden blok komentar ke tingkat yang sama dengan kode yang dijelaskan
  • Mulailah setiap baris dengan
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _09 diikuti dengan satu spasi
  • Pisahkan paragraf dengan baris yang berisi satu
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    09

Berikut adalah komentar blok yang menjelaskan fungsi dari

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
11 loop. Perhatikan bahwa kalimat tersebut dibungkus ke baris baru untuk mempertahankan batas baris 79 karakter

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
6

Terkadang, jika kodenya sangat teknis, maka perlu menggunakan lebih dari satu paragraf dalam komentar blok

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
7

Jika Anda pernah ragu dengan jenis komentar apa yang cocok, maka blokir komentar sering kali merupakan cara yang tepat. Gunakan mereka sebanyak mungkin di seluruh kode Anda, tetapi pastikan untuk memperbaruinya jika Anda membuat perubahan pada kode Anda

Komentar Sebaris

Komentar sebaris menjelaskan satu pernyataan dalam sepotong kode. Mereka berguna untuk mengingatkan Anda, atau menjelaskan kepada orang lain, mengapa baris kode tertentu diperlukan. Inilah yang dikatakan PEP 8 tentang mereka

  • Gunakan komentar sebaris dengan hemat
  • Tulis komentar sebaris pada baris yang sama dengan pernyataan yang mereka rujuk
  • Pisahkan komentar sebaris dengan dua spasi atau lebih dari pernyataan
  • Mulai komentar sebaris dengan
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _09 dan satu spasi, seperti komentar blokir
  • Jangan menggunakannya untuk menjelaskan yang sudah jelas

Di bawah ini adalah contoh komentar sebaris

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
8

Terkadang, komentar sebaris tampaknya diperlukan, tetapi Anda dapat menggunakan konvensi penamaan yang lebih baik. Ini sebuah contoh

>>> # Recommended
>>> name = 'John Smith'
>>> first_name, last_name = name.split()
>>> print(last_name, first_name, sep=', ')
'Smith, John'
_9

Di sini, komentar sebaris memberikan informasi tambahan. Namun menggunakan

def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
_4 sebagai nama variabel untuk nama seseorang adalah praktik yang buruk. Tidak perlu komentar sebaris jika Anda mengganti nama variabel Anda

# Not recommended
def db(x):
    return x * 2
_0

Akhirnya, komentar sebaris seperti ini adalah praktik yang buruk karena menyatakan kode yang jelas dan berantakan

# Not recommended
def db(x):
    return x * 2
_1

Komentar sebaris lebih spesifik daripada memblokir komentar, dan mudah untuk menambahkannya saat tidak diperlukan, yang menyebabkan kekacauan. Anda bisa lolos hanya dengan menggunakan komentar blokir jadi, kecuali Anda yakin Anda memerlukan komentar sebaris, kode Anda kemungkinan besar akan sesuai dengan PEP 8 jika Anda tetap memblokir komentar

Hilangkan iklan

String Dokumentasi

String dokumentasi, atau , adalah string yang diapit dengan tanda kutip ganda (

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
14) atau tunggal (
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
15) yang muncul di baris pertama fungsi, kelas, metode, atau modul apa pun. Anda dapat menggunakannya untuk menjelaskan dan mendokumentasikan blok kode tertentu. Ada seluruh PEP, PEP 257, yang mencakup dokumen, tetapi Anda akan mendapatkan ringkasan di bagian ini

Aturan paling penting yang berlaku untuk docstring adalah sebagai berikut

  • Kelilingi dokumen dengan tiga tanda kutip ganda di kedua sisi, seperti pada

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    16

  • Tuliskan untuk semua modul publik, fungsi, kelas, dan metode

  • Letakkan

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _14 yang mengakhiri dokumen multibaris pada satu baris dengan sendirinya

    # Not recommended
    def db(x):
        return x * 2
    
    _2

  • Untuk dokumen satu baris, pertahankan

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    14 di baris yang sama

    # Not recommended
    def db(x):
        return x * 2
    
    _3

Untuk artikel yang lebih detail tentang mendokumentasikan kode Python, lihat oleh James Mertz

Spasi kosong dalam Ekspresi dan Pernyataan

“Jarang lebih baik daripada padat. ”

— Zen Python

Spasi kosong bisa sangat membantu dalam ekspresi dan pernyataan bila digunakan dengan benar. Jika tidak ada cukup spasi, maka kode bisa sulit dibaca, karena semuanya digabungkan menjadi satu. Jika ada terlalu banyak spasi, maka akan sulit untuk menggabungkan istilah terkait secara visual dalam sebuah pernyataan

Spasi Putih di Sekitar Operator Biner

Kelilingi operator biner berikut dengan satu spasi di kedua sisinya

  • Operator penugasan (

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    19,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    20,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    21, dan seterusnya)

  • Perbandingan (

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    22,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    23,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    24,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    25.
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _26,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    27) dan (
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    28,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    29,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    30,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    31)

  • Boolean (

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    32,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    33,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    34)

Catatan. Ketika

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_19 digunakan untuk menetapkan nilai default ke argumen fungsi, jangan mengelilinginya dengan spasi

# Not recommended
def db(x):
    return x * 2
_4

Jika ada lebih dari satu operator dalam sebuah pernyataan, menambahkan satu spasi sebelum dan sesudah setiap operator dapat terlihat membingungkan. Sebaliknya, lebih baik hanya menambahkan spasi di sekitar operator dengan prioritas terendah, terutama saat melakukan manipulasi matematis. Berikut adalah beberapa contoh

# Not recommended
def db(x):
    return x * 2
_5

Anda juga dapat menerapkan ini pada pernyataan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_02 yang memiliki beberapa ketentuan

# Not recommended
def db(x):
    return x * 2
_6

Dalam contoh di atas, operator

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_32 memiliki prioritas terendah. Oleh karena itu mungkin lebih jelas untuk mengungkapkan pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02 seperti di bawah ini

# Not recommended
def db(x):
    return x * 2
_7

Anda bebas memilih mana yang lebih jelas, dengan peringatan bahwa Anda harus menggunakan jumlah spasi yang sama di kedua sisi operator

Berikut ini tidak dapat diterima

# Not recommended
def db(x):
    return x * 2
_8

Dalam irisan, titik dua bertindak sebagai operator biner. Oleh karena itu, aturan yang diuraikan di bagian sebelumnya berlaku, dan harus ada jumlah spasi yang sama di kedua sisi. Contoh irisan daftar berikut ini valid

# Not recommended
def db(x):
    return x * 2
_9

Singkatnya, Anda harus mengelilingi sebagian besar operator dengan spasi. Namun, ada beberapa peringatan untuk aturan ini, seperti argumen fungsi atau saat Anda menggabungkan beberapa operator dalam satu pernyataan

Hilangkan iklan

Kapan Harus Menghindari Menambahkan Spasi Putih

Dalam beberapa kasus, menambahkan spasi dapat membuat kode lebih sulit dibaca. Terlalu banyak spasi dapat membuat kode menjadi terlalu jarang dan sulit untuk diikuti. PEP 8 menguraikan contoh yang sangat jelas di mana spasi putih tidak sesuai

Tempat paling penting untuk menghindari penambahan spasi adalah di akhir baris. Ini dikenal sebagai spasi kosong. Itu tidak terlihat dan dapat menghasilkan kesalahan yang sulit dilacak

Daftar berikut menguraikan beberapa kasus di mana Anda harus menghindari penambahan spasi

  • Tepat di dalam tanda kurung, tanda kurung, atau kawat gigi

    # Recommended
    def multiply_by_two(x):
        return x * 2
    
    0

  • Sebelum koma, titik koma, atau titik dua

    # Recommended
    def multiply_by_two(x):
        return x * 2
    
    1

  • Sebelum tanda kurung buka yang memulai daftar argumen pemanggilan fungsi

    # Recommended
    def multiply_by_two(x):
        return x * 2
    
    2

  • Sebelum tanda kurung buka yang memulai indeks atau irisan

    # Recommended
    def multiply_by_two(x):
        return x * 2
    
    3

  • Antara tanda koma dan tanda kurung tutup

    # Recommended
    def multiply_by_two(x):
        return x * 2
    
    4

  • Untuk menyelaraskan operator penugasan

    # Recommended
    def multiply_by_two(x):
        return x * 2
    
    5

Pastikan tidak ada spasi kosong di mana pun dalam kode Anda. Ada kasus lain di mana PEP 8 melarang penambahan spasi ekstra, seperti tepat di dalam tanda kurung, serta sebelum koma dan titik dua. Anda juga tidak boleh menambahkan spasi ekstra untuk menyelaraskan operator

Rekomendasi Pemrograman

“Sederhana lebih baik daripada kompleks. ”

— Zen Python

Anda akan sering menemukan bahwa ada beberapa cara untuk melakukan tindakan serupa di Python (dan bahasa pemrograman lainnya). Di bagian ini, Anda akan melihat beberapa saran yang diberikan PEP 8 untuk menghilangkan ambiguitas tersebut dan menjaga konsistensi

Jangan bandingkan nilai Boolean dengan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
03 atau
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
40 menggunakan operator kesetaraan. Anda sering perlu memeriksa apakah nilai Boolean adalah Benar atau Salah. Saat melakukannya, intuitif untuk melakukan ini dengan pernyataan seperti di bawah ini

# Recommended
def multiply_by_two(x):
    return x * 2
6

Penggunaan operator kesetaraan,

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
22, tidak diperlukan di sini.
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_42 hanya dapat mengambil nilai
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
03 atau
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
40. Cukup dengan menulis yang berikut ini

# Recommended
def multiply_by_two(x):
    return x * 2
7

Cara melakukan pernyataan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_02 dengan Boolean ini membutuhkan lebih sedikit kode dan lebih sederhana, jadi PEP 8 mendorongnya

Gunakan fakta bahwa urutan kosong salah dalam pernyataan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02. Jika Anda ingin memeriksa apakah suatu daftar kosong, Anda mungkin tergoda untuk memeriksa panjang daftar tersebut. Jika daftar kosong, panjangnya adalah
def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)

    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)

    return mean_squares - mean**2
1 yang setara dengan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
40 saat digunakan dalam pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02. Ini sebuah contoh

# Recommended
def multiply_by_two(x):
    return x * 2
8

Namun, dalam Python semua daftar, string, atau tuple kosong adalah. Oleh karena itu, kami dapat menemukan alternatif yang lebih sederhana dari yang di atas

# Recommended
def multiply_by_two(x):
    return x * 2
_9

Sementara kedua contoh akan mencetak

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_50, opsi kedua lebih sederhana, jadi PEP 8 mendorongnya

Gunakan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_29 daripada
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
52 dalam pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02. Jika Anda mencoba memeriksa apakah suatu variabel memiliki nilai yang ditentukan, ada dua opsi. Yang pertama adalah mengevaluasi pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_02 dengan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
55, seperti pada contoh di bawah ini

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_0

Pilihan kedua adalah mengevaluasi

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_56 dan kemudian memiliki pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02 berdasarkan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
33 hasilnya

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_1

Sementara kedua opsi akan dievaluasi dengan benar, yang pertama lebih sederhana, jadi PEP 8 mendorongnya

Jangan gunakan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_59 saat Anda bermaksud
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
60. Terkadang, Anda mungkin memiliki fungsi dengan argumen yang
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
61 secara default. Kesalahan umum saat memeriksa apakah argumen seperti itu,
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
62, telah diberi nilai yang berbeda adalah dengan menggunakan yang berikut ini

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_2

Kode ini memeriksa bahwa

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_62 benar. Sebagai gantinya, Anda ingin memeriksa bahwa
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_62 adalah
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
65, jadi sebaiknya gunakan yang berikut ini

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_3

Kesalahan yang dibuat di sini adalah menganggap bahwa

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
65 dan kebenaran adalah setara. Anda bisa menyetel
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_67. Seperti yang kita lihat di atas, daftar kosong dievaluasi sebagai salah dalam Python. Jadi, meskipun argumen
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
62 telah ditetapkan, kondisinya tidak terpenuhi, sehingga kode di badan pernyataan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
02 tidak akan dieksekusi

Gunakan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
70 dan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
71 alih-alih mengiris. Jika Anda mencoba memeriksa apakah sebuah string
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
72 diawali, atau diakhiri, dengan kata
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
73, sepertinya masuk akal untuk digunakan. Namun, pemotongan daftar rentan terhadap kesalahan, dan Anda harus meng-hardcode jumlah karakter di awalan atau akhiran. Juga tidak jelas bagi seseorang yang kurang terbiasa dengan daftar Python yang mengiris apa yang ingin Anda capai

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_4

Namun, ini tidak dapat dibaca seperti menggunakan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
70

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_5

Demikian pula, prinsip yang sama berlaku saat Anda memeriksa sufiks. Contoh di bawah menguraikan bagaimana Anda dapat memeriksa apakah sebuah string diakhiri dengan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
75

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_6

Meskipun hasilnya benar, notasinya agak kikuk dan sulit dibaca. Sebagai gantinya, Anda dapat menggunakan

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_71 seperti pada contoh di bawah ini

class MyFirstClass:
    pass


class MySecondClass:
    pass


def top_level_function():
    return None
_7

Seperti kebanyakan rekomendasi pemrograman ini, tujuannya adalah keterbacaan dan kesederhanaan. Di Python, ada banyak cara berbeda untuk melakukan tindakan yang sama, jadi panduan metode mana yang dipilih sangat membantu

Hilangkan iklan

Kapan Mengabaikan PEP 8

Jawaban singkat untuk pertanyaan ini adalah tidak pernah. Jika Anda mengikuti PEP 8 dengan benar, Anda dapat menjamin bahwa Anda akan memiliki kode yang bersih, profesional, dan mudah dibaca. Ini akan menguntungkan Anda serta kolaborator dan calon pemberi kerja

Namun, beberapa pedoman di PEP 8 tidak nyaman dalam hal berikut

  • Jika mematuhi PEP 8 akan merusak kompatibilitas dengan perangkat lunak yang ada
  • Jika kode seputar apa yang sedang Anda kerjakan tidak sesuai dengan PEP 8
  • Jika kode harus tetap kompatibel dengan versi Python yang lebih lama

Tip dan Trik untuk Membantu Memastikan Kode Anda Mengikuti PEP 8

Ada banyak hal yang perlu diingat untuk memastikan kode Anda sesuai dengan PEP 8. Sangat sulit untuk mengingat semua aturan ini saat Anda mengembangkan kode. Sangat memakan waktu untuk memperbarui proyek sebelumnya agar sesuai dengan PEP 8. Untungnya, ada alat yang dapat membantu mempercepat proses ini. Ada dua kelas alat yang dapat Anda gunakan untuk menegakkan kepatuhan PEP 8. linter dan autoformatter

Linter

Linter adalah program yang menganalisis kode dan menandai kesalahan. Mereka memberikan saran tentang cara memperbaiki kesalahan. Linter sangat berguna saat diinstal sebagai ekstensi untuk editor teks Anda, karena menandai kesalahan dan masalah gaya saat Anda menulis. Di bagian ini, Anda akan melihat garis besar tentang cara kerja linter, dengan tautan ke ekstensi editor teks di bagian akhir

Linter terbaik untuk kode Python adalah sebagai berikut

  • >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _77 adalah alat untuk memeriksa kode Python Anda terhadap beberapa konvensi gaya di PEP 8

    Instal

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _77 menggunakan
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    79

    class MyFirstClass:
        pass
    
    
    class MySecondClass:
        pass
    
    
    def top_level_function():
        return None
    
    _8

    Anda dapat menjalankan

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _77 dari terminal menggunakan perintah berikut

    class MyFirstClass:
        pass
    
    
    class MySecondClass:
        pass
    
    
    def top_level_function():
        return None
    
    _9

  • >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _81 adalah alat yang menggabungkan debugger,
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    82, dengan
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    77

    Instal

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _81 menggunakan
    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    79

    class MyClass:
        def first_method(self):
            return None
    
        def second_method(self):
            return None
    
    0

    Jalankan

    >>> # Not recommended
    >>> x = 'John Smith'
    >>> y, z = x.split()
    >>> print(z, y, sep=', ')
    'Smith, John'
    
    _81 dari terminal menggunakan perintah berikut

    class MyClass:
        def first_method(self):
            return None
    
        def second_method(self):
            return None
    
    _1

    Contoh output juga ditampilkan

Catatan. Baris keluaran tambahan menunjukkan kesalahan sintaksis

Ini juga tersedia sebagai ekstensi untuk Atom, Sublime Text, , dan VIM. Anda juga dapat menemukan panduan tentang menyiapkan Sublime Text dan untuk pengembangan Python, serta ikhtisar beberapa editor teks populer di Real Python

Pemformat otomatis

Pemformat otomatis adalah program yang mengubah kode Anda agar sesuai dengan PEP 8 secara otomatis. Setelah program tersebut adalah

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_87, yang memformat kode secara otomatis mengikuti sebagian besar aturan di PEP 8. Satu perbedaan besar adalah membatasi panjang baris hingga 88 karakter, bukan 79. Namun, Anda dapat menimpanya dengan menambahkan tanda baris perintah, seperti yang akan Anda lihat pada contoh di bawah

Instal

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_87 menggunakan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
79. Itu membutuhkan Python 3. 6+ untuk berlari

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
_2

Itu dapat dijalankan melalui baris perintah, seperti halnya linter. Katakanlah Anda memulai dengan kode berikut yang tidak sesuai dengan PEP 8 dalam sebuah file bernama

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
90

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
_3

Anda kemudian dapat menjalankan perintah berikut melalui baris perintah

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
_4

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
_90 akan secara otomatis diformat ulang menjadi seperti ini

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
5

Jika Anda ingin mengubah batas panjang garis, maka Anda dapat menggunakan bendera

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
92

class MyClass:
    def first_method(self):
        return None

    def second_method(self):
        return None
_6

Dua pemformat otomatis lainnya,

>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
93 dan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
94, melakukan tindakan yang mirip dengan apa yang dilakukan
>>> # Not recommended
>>> x = 'John Smith'
>>> y, z = x.split()
>>> print(z, y, sep=', ')
'Smith, John'
87

Tutorial Python Nyata lainnya, Kualitas Kode Python. Alat & Praktik Terbaik oleh Alexander van Tol, memberikan penjelasan menyeluruh tentang cara menggunakan alat ini

Hilangkan iklan

Kesimpulan

Anda sekarang tahu cara menulis kode Python yang berkualitas tinggi dan mudah dibaca dengan menggunakan panduan yang ada di PEP 8. Meskipun panduannya tampak berlebihan, mengikuti panduan tersebut benar-benar dapat meningkatkan kode Anda, terutama saat membagikan kode Anda dengan calon pemberi kerja atau kolaborator.

Dalam tutorial ini, Anda belajar

  • Apa itu PEP 8 dan mengapa itu ada
  • Mengapa Anda harus bertujuan untuk menulis kode yang sesuai dengan PEP 8
  • Cara menulis kode yang sesuai dengan PEP 8

Di atas semua ini, Anda juga melihat cara menggunakan linter dan pemformat otomatis untuk memeriksa kode Anda terhadap panduan PEP 8

Jika Anda ingin mempelajari lebih lanjut tentang PEP 8, Anda dapat membaca dokumentasi lengkapnya, atau mengunjungi pep8. org, yang berisi informasi yang sama tetapi telah diformat dengan baik. Dalam dokumen ini, Anda akan menemukan pedoman PEP 8 lainnya yang tidak tercakup dalam tutorial ini

Tandai sebagai Selesai

Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Menulis Kode Pythonic yang Indah Dengan PEP 8

🐍 Trik Python 💌

Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python

Apakah python menggunakan casing unta?

Kirimi Saya Trik Python »

Tentang Jasmine Finer

Apakah python menggunakan casing unta?
Apakah python menggunakan casing unta?

Jasmine adalah pengembang Django, berbasis di London

» Lebih lanjut tentang Jasmine


Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah

Apakah python menggunakan casing unta?

Aldren

Apakah python menggunakan casing unta?

Brad

Apakah python menggunakan casing unta?

Dan

Apakah python menggunakan casing unta?

Joanna

Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista

Tingkatkan Keterampilan Python Anda »

Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista

Tingkatkan Keterampilan Python Anda »

Bagaimana menurut anda?

Nilai artikel ini

Tweet Bagikan Bagikan Email

Apa takeaway # 1 Anda atau hal favorit yang Anda pelajari?

Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami