假設我有一個字符串,如下所示:expression = '123 + 321'
。正在檢索完整數
我按照以下字符逐字符走過:for p in expression
。我正在檢查p
是否是使用p.isdigit()
的數字。如果p
是一個數字,我想抓住整個數字(所以抓住123
和321
,而不僅僅是,最初將是1
)。
我該怎麼用Python做到這一點?
在C(從C背景的),則相當於將是:
int x = 0;
sscanf(p, "%d", &x);
// the full number is now in x
編輯:
基本上,我接受來自接受正整數的用戶的數學表達式, +, - ,*,/以及括號:'('和')'。我逐字符地走字符串,我需要能夠確定字符是否是數字。使用isdigit()
,我可以。如果它是一個數字,但是我需要抓住整個數字。如何做到這一點?
對於一個快速和骯髒的解決方案,請參閱'eval'我的話。完整的答案可能涉及堆棧,解析和一些數學標記。如果可能,我會用'eval'去。 – Droogans
我已經在使用堆棧和解析。 – darksky