亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從符號的一側獲取數據

如何從符號的一側獲取數據

墨色風雨 2021-12-21 10:43:13
我正在用 python 制作一個計算器,需要一種方法來檢測運算符符號每一側的數字。例如 3 - 61,我希望它檢測 3 和 61 并將它們放入變量 num1 和 num2我目前正在使用 RegEx 來查找所有數字,但這甚至會將 10 或 87 之類的數字分成 1 和 0 或 8 和 7。這是我目前擁有的:import revar = input("Type equation:")elif " - " in var:    nums = str(re.findall(r'\d',var))    nums2 = nums.replace("['", "")    nums3 = nums2.replace("', '", "")    Numbers = nums3.replace("']", "")    num1, num2 = (int(i) for i in str(Numbers))    answer = num1 - num2    print(answer)對于 10 - 6 這樣的問題,我的預期結果是 4我的實際結果是數字太多錯誤 ValueError: too many values to unpack (expected 2)我知道這是因為我的程序只能處理單個數字,但我希望它能夠處理多個數字。
查看完整描述

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()它應該可以工作,就像我在第二個代碼部分中描述的那樣。


查看完整回答
反對 回復 2021-12-21
?
慕姐4208626

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]))


查看完整回答
反對 回復 2021-12-21
?
PIPIONE

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


查看完整回答
反對 回復 2021-12-21
  • 3 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號