[英]Scientific notation literal with variable exponent in Python
文字3e4
表示 python 中的float
30000(至少為 3.8)。
>>> print(3e4)
30000.0
以下代碼的語法顯然是無效的:
x=4
3ex
3ex
不是一個有效的表達式,但這個例子可以幫助我提出我的問題:
顯然,表達式3*10**4
表示相同的數字,但我這里的問題純粹與科學記數法文字有關。 只是出於我的好奇心,有沒有一種方法可以使用具有可變功率的相同語法,比:
x=4
eval(f"1e{x}")
3e4
和3*10**4
之間的一個細微差別是類型(分別為 float 和 int)。 在計算這兩個表達式時,執行時間是否也存在差異?
對於您的第一個問題:不,文檔不建議您可以。
有沒有辦法使用具有可變功率的相同語法?
When float is instantiated from a string , it calls out to a CPython C library PyOS_string_to_double to which handles making the str locale-aware ( .
vs ,
) before passing the string directly to the C function strtod
doc .
同時PyOS_string_to_double 的文檔沒有提到配置指數的任何特殊方法。
對於您關於性能的第二個問題,這很容易進行基准測試。 但是,我們沒有可作為基准的候選人。 所以,這是一個沒有實際意義的問題。
執行時間是否也存在差異?
我希望這能滿足你的好奇心。 如果沒有,請隨意挖掘我鏈接的 C 代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.