【问题标题】:I have a string and it contain some integer and i want to subtract that integers我有一个字符串,它包含一些整数,我想减去那个整数
【发布时间】:2021-03-08 16:34:45
【问题描述】:
userin=input("enter a question")

示例问题/userin
我有 10 台,我把 3 台给了我的朋友,我还剩多少台?

我想要做什么 = 从用户给定的字符串中查找整数并减去整数
RESULT 10-3 = 7

我需要以最简单的方式回答。它是一个高中(12 年级)项目。 我试过这个

import re
ab=input("enter    ")
# \d is equivalent to [0-9].
p = re.compile('\d')
pr=p.findall(ab)
for i in pr:
    print(i, end="")

建议我使用其他最好的代码来完成相同的任务。 我也想减去它

【问题讨论】:

  • 我不明白?你能显示你想要的确切输入和输出吗?
  • 输入由用户给出,输入可以是任何东西(string + int)

标签: python python-3.x algorithm function data-structures


【解决方案1】:

首先,您不想要单个数字,而是可以组合或多个数字的数字,因此您的正则表达式应该是@ 的'\\d+'(不要忘记字符串反斜杠) 987654322@:

ab=input("enter    ")
# \d is equivalent to [0-9].
p = re.compile(r'\d+')
pr = p.findall(ab)
if len(pr) == 2:
    print(int(pr[0]) - int(pr[1]))

【讨论】:

    【解决方案2】:

    您也可以不使用正则表达式来解决它。字符串有内置的isdigit() 方法,可以在这里为您提供帮助:

    userin=input("enter a question")
    
    digits = [int(each) for each in userin.split() if each.isdigit()]
    # -> [10, 3]
    
    result = digits[0] - digits[1]
    # -> 7
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多