経緯
大学でこんな課題が出されました。
任意の文字列を入力させ、その文字列の文字数が9でない場合は、while文を使い,入力された文字列の文字数が9となるまで,何度でもユーザーから文字列を入力させなおせるプログラムを作成せよ。
私は以下のように解答しました。
input_str = input("文字列を入力してください。:")
while len(input_str) != 9:
input_str = input("もう一度文字列を入力してください。:")
いざ実行してみると、
SyntaxError: with Barry as BDFL, use '<>' instead of '!='
とエラーメッセージが表示されました。
対処
文法的な誤りはないはずなのに、エラーだったことが疑問で、ChatGPTに尋ねてみました。
以下のように回答が返ってきました。
インストールされているPythonのバージョンやモジュールを確認してみても特に異常はなかったため、使用環境に問題があると私は考えました。このエラーメッセージは、Pythonの古いバージョンやジョークで見られるものです。
しかし、Pythonの標準的な構文では、このエラーメッセージは実際には表示されません。
エラーメッセージにある「Barry as BDFL」という部分は、Pythonの創始者であるGuido van Rossumを指しており、Pythonの内部ジョークである「Barry's BDFL(Benevolent Dictator For Life)」のものだと考えられます。
現在のPythonのバージョンでは != は正しい不等号演算子で、エラーにはなりません。
考えられるのは、以下のような原因です:
- Pythonの一部の拡張機能やモジュールが何らかのジョークエラーメッセージを追加している。
- 使用している環境が特別な設定やカスタマイズがされている。
試行錯誤した結果、私たちが実行していたGoogle Colaboratory(Colab)側に何らかのエラーがあったようです。(特定はできませんでした。)
Colabのメニューから「ランタイム」→「ランタイムを再起動」を選択し、環境を初期状態に戻して再度試すとうまくいきました。
おわりに
プログラミングに触れて以来、たくさんのエラーメッセージに悩まされましたが、今回このような初めてジョーク交じりのエラー(?)がでて正直驚きました。これからもエラーにうまく対処できるよう頑張っていきます。
この記事が少しでも参考になった方がいたら幸いです。
最後まで読んでくださりありがとうございました!