[英]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.