Rumah pembangunan bahagian belakang Tutorial Python Mesti str, bukan NoneType: Bagaimana untuk menyelesaikan ralat jenis NoneType Python?

Mesti str, bukan NoneType: Bagaimana untuk menyelesaikan ralat jenis NoneType Python?

Jun 24, 2023 pm 09:22 PM
python typeerror nonetype

Ralat jenis NoneType dalam Python ialah salah satu ralat yang sangat biasa apabila program sedang berjalan . Ralat jenis ini akan menyebabkan program ranap dan sukar untuk diselenggara, jadi kita perlu belajar cara menyelesaikan ralat NoneType Python.

1. Semak nilai pulangan fungsi

Dalam Python, nilai pulangan banyak fungsi ialah Tiada Pada masa ini, kita perlu menyemak nilai pulangan fungsi untuk mengelakkan atur cara mempunyai ralat NoneType. Contohnya, kod berikut:

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
email = user['email']
Salin selepas log masuk

Dalam contoh ini, jika parameter fungsi get_user ialah 'admin', maka ia akan mengembalikan kamus, tetapi jika parameternya ialah 'tetamu', fungsi itu akan terus mengembalikan Tiada Di kali ini, jika kita menghubungi e-mel terus Untuk pembolehubah ini, ralat NoneType akan berlaku. Untuk mengelakkan ralat ini, kami boleh membuat pertimbangan sebelum menerima e-mel:

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
if user is not None:
    email = user['email']
Salin selepas log masuk

Dengan cara ini, apabila fungsi mengembalikan Tiada, atur cara tidak akan terus melaksanakan baris kod e-mel = pengguna['email'], dengan itu mengelakkan kemunculan ralat NoneType.

2 Gunakan nilai lalai

Kadangkala, kita perlu menerima input parameter oleh pengguna dan mengendalikan parameter ini, tetapi pengguna mungkin tidak memasukkan semua parameter Pada masa ini, beberapa parameter akan menjadi Tiada, mengakibatkan ralat NoneType '. penampilan s. Contohnya:

def calculate_area(length, width):
    return length * width

print(calculate_area(5, None))
Salin selepas log masuk

Dalam contoh ini, fungsi calculate_area menerima dua parameter, tetapi jika pengguna terlupa untuk memasukkan lebar parameter kedua, lebar akan ditetapkan kepada Tiada secara lalai, mengakibatkan ralat NoneType. Untuk mengelakkan ralat ini, kita boleh menetapkan nilai lalai parameter dalam fungsi, contohnya:

def calculate_area(length, width=None):
    width = width or length
    return length * width

print(calculate_area(5, None))
Salin selepas log masuk

Dalam contoh ini, apabila pengguna tidak memasukkan parameter lebar, lebar akan ditetapkan kepada panjang secara lalai, oleh itu mengelakkan berlakunya ralat NoneType.

3 Semak jenis pembolehubah

Kadangkala, kita tidak pasti sama ada nilai pembolehubah adalah Tiada Pada masa ini, kita boleh menentukan sama ada ia adalah Tiada dengan menyemak jenis pembolehubah. Contohnya:

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
if isinstance(user, dict):
    email = user['email']
Salin selepas log masuk

Dalam contoh ini, kami menggunakan isinstance(user, dict) untuk menyemak sama ada pengguna ialah jenis kamus Jika ia adalah jenis kamus, kami boleh terus melaksanakan kod seterusnya.

4. Gunakan pengendalian pengecualian

Dalam Python, kita boleh menggunakan pengendalian pengecualian untuk menangkap ralat NoneType dan mengendalikannya dengan sewajarnya. Contohnya:

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
try:
    email = user['email']
except TypeError:
    email = None
Salin selepas log masuk

Dalam contoh ini, kami menggunakan try...kecuali untuk menangkap pengecualian TypeError Apabila ralat NoneType berlaku semasa pelaksanaan program, ia secara automatik akan melompat ke blok kecuali dan melaksanakan kod pemprosesan yang sepadan.

Ringkasan

Dalam Python, ralat NoneType ialah ralat yang sangat biasa, tetapi selagi anda menguasai penyelesaian yang betul, anda boleh mengelakkan ralat ini dengan berkesan. Kami boleh menyelesaikan ralat NoneType dengan menyemak nilai pulangan fungsi, menggunakan nilai lalai, menyemak jenis pembolehubah dan menggunakan pengendalian pengecualian. Semasa menulis program Python, kita harus memberi perhatian untuk mengelakkan ralat NoneType dan meningkatkan kebolehbacaan dan kestabilan program.

Atas ialah kandungan terperinci Mesti str, bukan NoneType: Bagaimana untuk menyelesaikan ralat jenis NoneType Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bolehkah penterjemah Python dipadam dalam sistem Linux? Bolehkah penterjemah Python dipadam dalam sistem Linux? Apr 02, 2025 am 07:00 AM

Mengenai masalah menghapuskan penterjemah python yang dilengkapi dengan sistem Linux, banyak pengagihan Linux akan memasang semula penterjemah python apabila dipasang, dan ia tidak menggunakan pengurus pakej ...

Bagaimana menyelesaikan masalah pengesanan jenis pylance penghias tersuai di Python? Bagaimana menyelesaikan masalah pengesanan jenis pylance penghias tersuai di Python? Apr 02, 2025 am 06:42 AM

Penyelesaian Masalah Pengesanan Jenis Pylance Apabila menggunakan penghias tersuai dalam pengaturcaraan python, penghias adalah alat yang berkuasa yang boleh digunakan untuk menambah baris ...

Python 3.6 Memuatkan Ralat Fail Pickle ModulenotFoundError: Apa yang perlu saya lakukan jika saya memuatkan fail acar '__builtin__'? Python 3.6 Memuatkan Ralat Fail Pickle ModulenotFoundError: Apa yang perlu saya lakukan jika saya memuatkan fail acar '__builtin__'? Apr 02, 2025 am 06:27 AM

Memuatkan Fail Pickle di Python 3.6 Kesalahan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...

Adakah Fastapi dan AIOHTTP berkongsi gelung acara global yang sama? Adakah Fastapi dan AIOHTTP berkongsi gelung acara global yang sama? Apr 02, 2025 am 06:12 AM

Isu keserasian antara perpustakaan asynchronous Python di Python, pengaturcaraan tak segerak telah menjadi proses kesesuaian tinggi dan I/O ...

Apa yang perlu saya lakukan jika modul '__builtin__' tidak dijumpai apabila memuatkan fail acar di Python 3.6? Apa yang perlu saya lakukan jika modul '__builtin__' tidak dijumpai apabila memuatkan fail acar di Python 3.6? Apr 02, 2025 am 07:12 AM

Memuatkan Fail Pickle di Python 3.6 Kesalahan Laporan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...

Bagaimana untuk memastikan bahawa proses kanak -kanak juga tamat selepas membunuh proses induk melalui isyarat di Python? Bagaimana untuk memastikan bahawa proses kanak -kanak juga tamat selepas membunuh proses induk melalui isyarat di Python? Apr 02, 2025 am 06:39 AM

Masalah dan penyelesaian proses kanak -kanak terus berjalan apabila menggunakan isyarat untuk membunuh proses induk. Dalam pengaturcaraan Python, selepas membunuh proses induk melalui isyarat, proses anak masih ...

See all articles