繁体   English   中英

从 python 中的字符串中分离并添加两个数字(用户输入)

[英]Seperate and add two numbers from a string in python (user input)

我正在尝试从用户输入中获取一个字符串,例如(“什么是 1 + 1”)将字母与数字分开,然后添加 2 个数字。 我已经尝试了下面的代码,但仍然无法弄清楚如何添加两个 1。

def 拆分字符串(str):

alpha = ""
num = ""
special = ""
for i in range(len(str)):
    if(str[i].isdigit()):
        num = num+ str[i]
    elif((str[i] >= 'A' and str[i] <= 'Z') or
         (str[i] >= 'a' and str[i] <= 'z')):
        alpha += str[i]
    else:
        special += str[i]

print(alpha)
print(num )
print(special)


            
    

如果名称==“主要”:

str = "what is 1 + 1"
splitString(str)
my_str = "what is 1 + 1"
x = []
str_list = my_str.split(" ")
for i in str_list:
    if i.isDigit():
        x.append(int(i))

sum_integers = 0
for i in x:
    sum_integers += i

print(sum_integers)

试试这个,我没有运行它。

“.split” function 将大大简化您的代码。 我鼓励您查看此链接https://www.w3schools.com/python/ref_string_split.asp

我可能建议使用itertools.groupby作为起点,例如:

>>> import itertools
>>> def split_alpha_num(s: str) -> list[str]:
...     return ["".join(g).strip() for _, g in itertools.groupby(s, lambda s:(s.isalpha(), s.isdecimal()))]
...
>>> split_alpha_num("what is 1 + 1")
['what', '', 'is', '', '1', '+', '1']

从那里开始,您可以遍历字符串,丢弃既不是数字也不是数学运算符的元素,然后尝试对剩余的元素进行处理。 确切的方法取决于您希望代码能够处理的输入的复杂性; 在非常普遍的情况下解决此类问题并非易事。

你应该使变量num成为一个列表,然后将所有数字添加到该列表中

像那样

def splitString(str):
    alpha = ""
    num = []
    special = ""
    for i in range(len(str)):
        if(str[i].isdigit()):
            num.append(int(str[i]))
        elif((str[i] >= 'A' and str[i] <= 'Z') or
            (str[i] >= 'a' and str[i] <= 'z')):
            alpha += str[i]
        else:
            special += str[i]

    print(alpha)
    print(num)
    print(special)

这样以后你可以使用special变量来确定如何处理这些数字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM