【发布时间】:2021-01-20 15:23:43
【问题描述】:
我对 python 很陌生,但我想将一个包含数字和字母的字符串转换为一个数组。有什么方法可以让数字不带字符串并将字母保持为字符串?
示例:string = "2A3M4D8"
我希望 A 是两边的加法数字。 M要乘,D,除,S,减。所以程序应该计算 ((2+3)*4)/8=2,5
import numpy as np
def compile(program):
program=map(int,program())
newvector=np.array([])
for i in range(len(program)):
if program[i]=="A":
R=program[i-1]+program[i+1]
elif program[i]=="S":
R=program[i-1]-program[i+1]
elif program[i]=="M":
R=program[i-1]*program[i+1]
elif program[i]=="D":
R=program[i-1]/program[i+1]
newvector=np.concatenate(newvector,R)
result=sum(newvector)
return result
print(compile("3A3"))
【问题讨论】:
-
您尝试过什么吗?遇到了什么错误?
-
听起来你可以用
'+'等替换'A',使用str.translate之类的东西,然后使用something like this来评估最终表达式。 -
我尝试使用 map(int) 然后设置 op a forloopis 但我只收到 0 作为输出。
-
我刚刚用我的代码更新了这个问题^^
-
请始终格式化代码/回溯/数据 - 选择它并输入
ctrl-k。 Formatting help...Formatting sandbox