3 回答

TA貢獻1982條經驗 獲得超2個贊
var = input("Type equation:")
if " - " in var:
nums = var.split(' - ')
num1, num2 = (int(i) for i in nums)
answer = num1 - num2
print(answer)
這將是適用于您所描述的情況的解決方案。請注意,我刪除了str()部分中的num1, num2部分,因為 split 會給你一個它拆分的值列表。把str()它們再次連接起來,你就不會比以前更遠了。
您的嘗試已接近解決方案。
import re
var = input("Type equation:")
if " - " in var:
nums = re.findall(r'\d+',var)
num1, num2 = (int(i) for i in nums)
answer = num1 - num2
print(answer)
這個會起作用。你過度使用了這個str()意思, find all 給了你一個列表,str()你告訴解釋器再次將列表連接成一個字符串,這給了你一些奇怪的[]東西。如果你離開str()它應該可以工作,就像我在第二個代碼部分中描述的那樣。

TA貢獻1852條經驗 獲得超7個贊
如果您只對 2 個數字之間的減法感興趣并且它的格式完全一樣,X - X那么您可以簡單地使用split函數來解決它:
var = input("Type equation:")
nums = var.split(" - ")
print(int(nums[0]) - int(nums[1]))
如果你堅持使用正則表達式,你可以像這樣解決它:
var = input("Type equation:")
nums = re.findall(r'\d+',var) #\d+ means 1 or more digits
print(int(nums[0]) - int(nums[1]))

TA貢獻1829條經驗 獲得超9個贊
您可以使用var.split(" - "). 這將返回一個字符串數組。然后,您可以將所有字符串轉換為整數并添加或減去它們:
# get all the numbers (only works for subtraction)
numbers = var.split(" - ")
result = 0
for number in numbers:
# no error checking here; should be implemented
result -= int(number)
print(result)
請記住,您還必須檢查多個標志,例如 4 + 2 - 5
添加回答
舉報