Bagaimana Anda memberi kenaikan gaji dengan python?

Saat kita meneruskan angka negatif ke fungsi is_prime, angka negatif itu akan diteruskan ke fungsi

>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
0, yang memunculkan pengecualian
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1

>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error

Fungsi

>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
2 dalam modul
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
3 Python memunculkan pengecualian ketika diberi angka negatif

Mungkin ada beberapa kasus di mana is_prime harus mengajukan pengecualian tetapi tidak sekarang. Misalnya, jika kita melewatkan angka floating point ke fungsi is_prime, fungsi tersebut akan mengembalikan jawaban

Dan terkadang itu mengembalikan jawaban yang sangat aneh

Tidak masuk akal untuk menanyakan non-bilangan bulat apakah itu bilangan prima, jadi fungsi is_prime kita mungkin harus memunculkan pengecualian saat diberi nomor floating point

Juga, jika kita meneruskan

>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
_7 atau
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
8 ke is_prime, itu mengembalikan
    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
0

Itu mungkin harus mengembalikan

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
_1 atau memunculkan pengecualian sebagai gantinya (tergantung pada bagaimana kami lebih suka menerapkan is_prime)

Memunculkan pengecualian saat kondisi tertentu terpenuhi

Kita dapat memodifikasi fungsi is_prime kita untuk memeriksa kedua kondisi ini, memunculkan pengecualian jika salah satu dari kondisi tersebut terpenuhi

Pertama kita akan bertanya apakah nomor yang diberikan adalah turunan dari kelas

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
4, dan kita akan memunculkan pengecualian
    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
5 jika itu adalah

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")

Kami menggunakan pernyataan

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
_6 Python dan mengirimkan objek pengecualian
    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
5. Kami menggunakan
    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
_5 karena jenis yang diberikan salah

Selain itu, jika angka yang diberikan kurang dari

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
9, kami akan mengatakan bahwa ini bukan nilai yang valid, jadi kami akan menaikkan pengecualian
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1. Pesan untuk pengecualian
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1 kami akan menyatakan bahwa hanya bilangan bulat di atas
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
8 yang diterima

    if number < 2:
        raise ValueError(f"Only integers above 1 are accepted: {number}")

Inilah fungsi is_prime_ yang diperbarui dengan kedua kondisi tersebut dan pernyataan

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
6

def is_prime(number):
    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
    if number < 2:
        raise ValueError(f"Only integers above 1 are accepted: {number}")
    for candidate in range(2, int(sqrt(number))+1):
        if number % candidate == 0:
            return False
    return True

Dalam kedua kasus ini, pesan kesalahan yang kami berikan ke objek pengecualian kami menunjukkan nomor yang kami berikan, yang akan membuat pesan kesalahan kami sangat membantu saat kami sedang men-debug kode kami

Wow ketika kita memanggil fungsi is_prime_ dengan angka floating point, itu menimbulkan pengecualian

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
5 yang mengatakan hanya bilangan bulat yang diterima

>>> is_prime(4.5)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime2.py", line 6, in is_prime
    raise TypeError(f"Only integers are accepted: {number}")
TypeError: Only integers are accepted: 4.5

Demikian pula, jika kita memanggil is_prime dengan

>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
8 atau
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
7, itu memunculkan pengecualian
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1

>>> is_prime(1)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime2.py", line 8, in is_prime
    raise ValueError(f"Only integers above 1 are accepted: {number}")
ValueError: Only integers above 1 are accepted: 1

Dalam kedua kasus, traceback yang dicetak Python menunjukkan pesan kesalahan ramah yang kami berikan pada objek pengecualian kami

Python memiliki pengecualian bawaan

Dari mana

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
5 dan
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1 berasal?

Jika Anda melihat bantuan pada modul

def is_prime(number):
    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
    if number < 2:
        raise ValueError(f"Only integers above 1 are accepted: {number}")
    for candidate in range(2, int(sqrt(number))+1):
        if number % candidate == 0:
            return False
    return True
_3 di Python, atau jika Anda melihat , Anda akan melihat hierarki pengecualian

>>> import builtins
>>> help(builtins)
Help on built-in module builtins:

NAME
    builtins - Built-in functions, exceptions, and other objects.

DESCRIPTION
    Noteworthy: None is the `nil' object; Ellipsis represents `...' in slices.

CLASSES
    object
        BaseException
            Exception
                ArithmeticError
                    FloatingPointError
                    OverflowError
                    ZeroDivisionError
                AssertionError
                AttributeError
                BufferError
                EOFError
                ImportError
                    ModuleNotFoundError
                LookupError
                    IndexError
                    KeyError
                MemoryError
                NameError
                    UnboundLocalError
                OSError
                    BlockingIOError
                    ChildProcessError
                    ConnectionError
                        BrokenPipeError
                        ConnectionAbortedError
                        ConnectionRefusedError
                        ConnectionResetError
                    FileExistsError
                    FileNotFoundError
                    InterruptedError
                    IsADirectoryError
                    NotADirectoryError
                    PermissionError
                    ProcessLookupError
                    TimeoutError
                ReferenceError
                RuntimeError
                    NotImplementedError
                    RecursionError
                StopAsyncIteration
                StopIteration
                SyntaxError
                    IndentationError
                        TabError
                SystemError
                TypeError
                ValueError
                    UnicodeError
                        UnicodeDecodeError
                        UnicodeEncodeError
                        UnicodeTranslateError
                Warning
                    BytesWarning
                    DeprecationWarning
                    EncodingWarning
                    FutureWarning
                    ImportWarning
                    PendingDeprecationWarning
                    ResourceWarning
                    RuntimeWarning
                    SyntaxWarning
                    UnicodeWarning
                    UserWarning
            GeneratorExit
            KeyboardInterrupt
            SystemExit

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
5 dan
>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1 hanyalah dua dari banyak pengecualian bawaan di Python. Ada lusinan pengecualian yang dibangun ke dalam Python. Kami tidak perlu mengimpor apa pun untuk menggunakan pengecualian ini;

Kita dapat menentukan jenis pengecualian khusus kita sendiri dengan mewarisi dari kelas pengecualian lain, tetapi agak tidak biasa untuk melakukannya. Kecuali jika Anda benar-benar perlu membedakan pengecualian Anda dari pengecualian yang dibangun ke dalam Python, Anda mungkin tidak akan sering membuat pengecualian khusus

Jenis pengecualian paling umum yang saya ajukan dalam kode saya adalah pengecualian

>>> is_prime(-2)
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/trey/is_prime.py", line 5, in is_prime
    for candidate in range(2, int(sqrt(number))+1):
ValueError: math domain error
1

Gunakan if isinstance(number, float): raise TypeError(f"Only integers are accepted: {number}") _6 untuk melempar pengecualian dengan Python

Jika Anda memiliki kondisi tertentu dalam fungsi Anda yang seharusnya membuat program Anda mogok dengan keras (jika/ketika kondisi itu terpenuhi), Anda dapat mengajukan pengecualian dengan menggunakan pernyataan

    if isinstance(number, float):
        raise TypeError(f"Only integers are accepted: {number}")
6 dan memberikan objek pengecualian untuk dimunculkan

Bagaimana cara membesarkan dengan Python?

Operator ** dalam Python digunakan untuk menaikkan bilangan di sebelah kiri menjadi pangkat eksponen di sebelah kanan . Artinya, dalam ekspresi 5 ** 3 , 5 dipangkatkan ke-3.

Bisakah Anda menaikkan dan mengembalikan Python?

Anda tidak dapat "menaikkan" dan "mengembalikan" dalam waktu yang sama , jadi Anda harus menambahkan variabel khusus ke nilai kembalian (e. g. dalam tuple) jika terjadi kesalahan.

Apa yang diizinkan oleh pernyataan raise di Python?

menaikkan memungkinkan Anda untuk melempar pengecualian kapan saja . menegaskan memungkinkan Anda untuk memverifikasi jika kondisi tertentu terpenuhi dan mengeluarkan pengecualian jika tidak. Dalam klausa try, semua pernyataan dieksekusi hingga pengecualian ditemukan. kecuali digunakan untuk menangkap dan menangani pengecualian yang ditemui dalam klausa try.

Apa itu kenaikan dalam pengkodean?

Kata kunci raise memunculkan pengecualian khusus saat kondisi terpenuhi atau kode menemui kesalahan . Pengecualian yang diajukan oleh program dapat berupa instance pengecualian atau kelas pengecualian. Saat Anda menggunakan kata kunci kenaikan, Anda dapat menentukan jenis kesalahan apa yang harus dimunculkan mesin untuk pengecualian tertentu.