2022年8月18日 星期四

好站 : Python 3.10 線上解譯器 : CoderPad

今天在測試 Python 的亂數模組時, 在 Python API 文件中看到 random.randrange() 項目下有 "Deprecated since version 3.10" 字樣卻沒仔細看後面內容, 誤以為此函式已經在新版 3.10 版遭到器用, 於是想找個線上 Python 解譯器來驗證一下 (因為手邊不論筆電還是桌電都只有 3.6~3.8 版), 但找了許多個網站都沒上到 3.10 版, 甚至 Python 官網也只有 3.9 版而已 :

# https://www.python.org/shell/

就在想放棄的時候, 所幸找到下面這個網站 coderpad.io : 


用下列程式碼測試它的線上解譯器是 3.10.5 版 :

from platform import python_version
print(python_version())




不需要註冊就可以直接使用其 Python 線上解譯器, 如果註冊並建立一個 team 的話, 會獲得 7 天免費全功能試用, 且程式可以儲存在擋案系統中 :




可見它提供了擋案系統與資料庫, 所以可以在此平台上用 Flask/Django 架站. 




登入後要寫程式就按右上角的 "Create Pad", 提供超過 30 種語言 : 

 


即使沒有註冊也是可以執行程式的. 

我執行下列程式確認 randrange() 在 3.10 版可以正常執行 : 

import random
print(random.random())
print(random.randrange(1, 10, 2))




回去再看一下 Python 文件, 原來它講的 "Deprecated since version 3.10" 是指 randrange() 的傳入參數是浮點數時的處理方式, 我在筆電 (3.7.2) 會觸發 ValueErroe : 

Python 3.7.2 (C:\Python37\python.exe)
>>> import random
>>> random.randrange(1, 5)
1
>>> print(random.randrange(1.2, 10.6, 2))
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
  File "C:\Python37\lib\random.py", line 186, in randrange
    raise ValueError("non-integer arg 1 for randrange()")
ValueError: non-integer arg 1 for randrange()

但在 coderpad.io 則是觸發 TypeError : 




這樣總算是釐清疑惑了, 而且也找到一個很棒的資源, 有空可以用它來測試 Python 3.10 的新功能, 參考 : 


沒有留言:

張貼留言