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.

Postingan terbaru

LIHAT SEMUA