Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/12/21 11:44:57.596 (台灣標準時)

Python の match statement と case statement

Python の "The Python Tutorial" を読んでいたら、 match statement と case statement についての記述があったでござる。「Pythonにそんなものがあったでござろう か」と思って調べてみたら、 Python 3.10で新た に使えるようになったものでござった。

まだ Python 3.9 を使い続けているので、 Python 3.10 をインストールして、 match と case を試してみたでござる。以下のようなコードを用意してみたで ござる。


#!/usr/pkg/bin/python3.10

#
# Time-stamp: <2022/08/31 15:33:26 (CST) daisuke>
#

# importing sys module
import sys

# if the number of command-line argument is not one, then quit
if ( len (sys.argv) != 2 ):
    print ("Give one command-line argument!")
    sys.exit ()

# converting a command-line argument into an integer
try:
    n = int (sys.argv[1])
except:
    print ("%s is not an integer!" % sys.argv[1])
    sys.exit ()

# use of match and case statements
match n:
    case 0:
        print ("n is equal to 0.")
    case 1:
        print ("n is equal to 1.")
    case _:
        print ("n is neither equal to 0 or 1.")

上のコードを実行してみると、以下の通りにござる。


% ./test_match_00.py 0
n is equal to 0.
% ./test_match_00.py 1
n is equal to 1.
% ./test_match_00.py 2
n is neither equal to 0 or 1.
% ./test_match_00.py -3
n is neither equal to 0 or 1.

Python 3.10 で新たに加わった機能だからなのか、 Emacs を使って match と case を含むコードを書くと、 match や case がインデントの対象にならない でござる。

fig_202208/python_match_00.png
fig_202208/python_match_01.png


Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___Network/20240130_00.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Python/20220410_0.html
  12. Computer___Network/20240416_00.html
  13. Computer___NetBSD/20230119_00.html
  14. Computer___Debian/20210223_1.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___Python/20240101_00.html
  22. Computer___NetBSD/20220808_0.html
  23. Computer___TeX/20230503_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20230515_00.html
  26. Computer___Network/20220413_1.html
  27. Computer___NetBSD/20210127_0.html
  28. Computer___TeX/20231107_00.html
  29. Computer___Python/20220816_1.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.