——只有(可以多於)的個數,此時在行尾補) 。
——取模|...|不能巢狀。(在casio中沒有這個問題,因為每按一次取模鍵,你會得到兩個|,所以可以定義他們的大小)
——無論是圓括號還是取模號,後面不能直接跟數字: )23 -> wrong
——基本的加減乘除:1+2, 3/4
——冪次: 3^2 (我懶得支援sqrt()和1x102的功能了)
——取模:|-2|
——虛數i:2i
——取共軛、幅角:cjg(), arg()
——三角函式sin cos tan
——多表示式分隔:2+3:
——變數與存值:a+3, 2+3>a
——答案自動存值:3+2:ans-4 (==1)
除此之外,計算器還有以下的robust功能:
——對於數字前的正負號,可以判斷多個正負號結合的結果:++++--+---+ -> -
——對於括號前的數字和字母,可以判斷是一種優先的乘法:8 / 2 (5) -> 8 / (2 (5))
——對於多個因子,視為它們的積:ii -> -1
我們可以將乙個數分為四個部分:
——正負號部分:[++--+-++-]
——數字部分:[215.2145]
——變數與虛數單位部分:[ansansabaiiianscjg(...)arg(...)],這裡都是相乘的。對於乙個「數」,第二或第三部分必須出現一次,否則就報錯。
——運算子部分:+, *, ^, :...在處理時將:視為表示式終止符,人為新增方便判斷;但是使用者自己不能以:作為結尾。
這樣處理有乙個好處:通過這種歸類,你只需要考慮四種字元(其實還有括號,原因是空字串)後面應該跟隨什麼型別的字元——如果字尾字元無效,就可以返回乙個錯誤。
逐字元,排程場,這些就不贅述了。
關於報錯,肯定要指出錯誤位置。這個準備採用乙個變數來記數。
這幾天想了一下,發現不能侷限在casio的函式之內,應該要做到模組化。或者做成乙個parser。
首先,把運算元件分為以下幾部分:
——數字:string.digit+'.'
——左右的雙目運算子:+-*/^
——單目運算子:>
——函式:func(expa, expb,...)
——變數:abcd ans
——括號:() || (有可能的話,可能會在內部處理的時候把取模號作為單目運算子使用)
python 肆 模組,cmath複數
上一節,乙個人的年齡是22。9,她年齡還沒到23,只是取22,則需要floor函式 模組 匯入到python以增強其功能的擴充套件,暫時這麼理解 需要 import命令 來匯入math 模組,利用math模組中的 floor函式 用import匯入模組,按照 模組。函式 的格式用這個模組的函式 im...
B1051 複數乘法(python)
1051 複數乘法 15分 複數可以寫成 a bi 的常規形式,其中 a 是實部,b 是虛部,i 是虛數單位,滿足 i 2 1 也可以寫成極座標下的指數形式 r e pi 其中 r 是複數模,p 是輻角,i 是虛數單位,其等價於三角形式 r cos isin 現給定兩個複數的 r 和 p,要求輸出兩...
python模擬登入
使用python模擬登入的乙個思路 一,獲取data,獲取headers 二,構造cookie 需要使用urllib,urllib2,cookielib 這三個模組 使用瀏覽器獲取 的data,headers 構造data,headers字典 作為引數 使用urllib2的request方法傳遞引數...