Kecacatan dalam skrip Python boleh menyebabkan hasil yang salah dalam lebih daripada 100 penerbitan kimia

Pelajar Siswazah Universiti Hawaii ditemui masalah dalam skrip Python yang digunakan untuk pengiraan anjakan kimia, yang menentukan struktur kimia bahan yang dikaji semasa analisis spektrum isyarat menggunakan kaedah resonans magnet nuklear. Semasa mengesahkan hasil penyelidikan salah seorang profesornya, seorang pelajar siswazah menyedari bahawa apabila menjalankan skrip pada sistem pengendalian yang berbeza pada set data yang sama, output adalah berbeza.

Contohnya, apabila dijalankan pada macOS 10.14 dan Ubuntu 16.04 untuk set data yang diuji, skrip dikeluarkan nilai salah 172.4 bukannya 173.2. Skrip ini merangkumi kira-kira 1000 baris kod dan telah digunakan oleh ahli kimia sejak 2014. Pemeriksaan kod menunjukkan bahawa output adalah salah disebabkan oleh perbezaan apabila menyusun fail dalam sistem pengendalian yang berbeza. Penulis skrip percaya bahawa fungsi "bola ()" sentiasa mengembalikan fail yang diisih mengikut nama, manakala dokumentasi glob menyatakan bahawa susunan output tidak dijamin. Penyelesaiannya ialah menambah list_of_files.sort() selepas panggilan glob().

Kecacatan dalam skrip Python boleh menyebabkan hasil yang salah dalam lebih daripada 100 penerbitan kimia

Masalah yang ditemui menimbulkan keraguan tentang ketepatan lebih daripada 100 penerbitan mengenai kimia, yang kesimpulannya dibuat berdasarkan anjakan kimia yang dikira oleh skrip. Bilangan sebenar kajian di mana skrip digunakan tidak diketahui, tetapi penerbitan dengan kodnya dipetik dalam 158 kertas kerja. Pengarang karya ini disyorkan untuk menilai ketepatan skrip pada sistem pengendalian yang digunakan untuk pengiraan dan mengira semula untuk memastikan nilai yang dikira adalah betul. Insiden itu merupakan contoh terbaik fakta bahawa bukan sahaja kualiti eksperimen, tetapi juga ketepatan pemprosesan data yang diperoleh dalam program yang
Ini telah digunakan secara meluas boleh menjejaskan keputusan akhir.

Sumber: opennet.ru

Tambah komen