在Python中分解字符串
所以我正在用Python制作一个快速计算器脚本,我需要拆分一个短字符串。程序首先显示一条简短的欢迎消息,然后提示询问他们想做什么,并显示正确的格式。该功能用于进行计算,但不幸的是,我无法使字符串解析位正常工作 这是我的密码在Python中分解字符串,python,string,Python,String,所以我正在用Python制作一个快速计算器脚本,我需要拆分一个短字符串。程序首先显示一条简短的欢迎消息,然后提示询问他们想做什么,并显示正确的格式。该功能用于进行计算,但不幸的是,我无法使字符串解析位正常工作 这是我的密码 print ("--------------------------------------") print (" ") print ("Advanced Quick Calculator") print ("By Max M, licenced under GPLv3")
print ("--------------------------------------")
print (" ")
print ("Advanced Quick Calculator")
print ("By Max M, licenced under GPLv3")
print (" ")
print ("--------------------------------------")
statement = raw_input ("Please enter your mathematical statement [3 3 plus minus times divide]: ")
strnum1 = statement[:1]
print ("strnum1 : " + strnum1)
#num1 = int (strnum1)
strnum2 = statement[:4]
print ("strnum2 : " + strnum2)
#num2 = int (strnum2)
operation = statement[5:11]
print ("operation : " + operation)
#if operation == "+":
# ans = num1 + num2
#if operation == "-":
# ans = num1 - num2
#if operation == "*":
# ans = num1 * num2
#if operation == "/":
# ans = num1 / num2
#print ("The answer is : "), ans
我不打算为您做家庭作业,但我会为您指出问题的答案(提示:看起来您试图在空格上拆分,而不是在链接中拆分逗号,因此请相应地调整代码)
我不会为您做家庭作业,但我会为您指出问题的答案(提示:您似乎试图在链接中拆分空格,而不是逗号,因此请相应地调整代码)
这看起来像是正则表达式的作业:
>>> import re
>>> match = re.search(r'(\d+)\s*([+*/-])\s*(\d+)', '42 + 7')
>>> match.group(1) # <-- num1
'42'
>>> match.group(2) # <-- operation
'+'
>>> match.group(3) # <-- num2
'7'
>>重新导入
>>>匹配=重新搜索(r'(\d+)\s*([+*/-])\s*(\d+),'42+7')
>>>match.group(1)#>>match.group(2)#>>match.group(3)#这看起来像是正则表达式的作业:
>>> import re
>>> match = re.search(r'(\d+)\s*([+*/-])\s*(\d+)', '42 + 7')
>>> match.group(1) # <-- num1
'42'
>>> match.group(2) # <-- operation
'+'
>>> match.group(3) # <-- num2
'7'
>>重新导入
>>>匹配=重新搜索(r'(\d+)\s*([+*/-])\s*(\d+),'42+7')
>匹配。组(1)>>匹配。组(2)>>匹配。组(3),也许你应该考虑实际解析字符串而不是使用固定偏移。请阐明正确的格式应该是什么。它是3 + 3, 3 - 3, 3和3等吗?我将从空间分割字符串开始。也许你应该考虑实际解析字符串而不是使用固定偏移。请阐明正确的格式应该是什么。是3+3、3-3、3/3等吗?我会先用空格分割字符串。你把除法运算符倒过来了,不需要在字符类中转义元字符。谢谢,我想我会用不同的输入方法。你把除法运算符倒过来了,你不需要在字符类中转义元字符。谢谢,我想我只需要使用不同的输入方法