python 截取指定字符前后的所有字符的函数

比如4564612131856+654654654654
需要分别截取‘+’前后的字符
请问这个要怎么写

可以参考下面的代码:

#!/usr/bin/python

# encoding: utf-8

# filename: baiduzhidao.py

ln = "4564612131856+654654654654"

print ln.split("+")

#~ Result:

#~ >python -u "baiduzhidao.py"

#~ ['4564612131856', '654654654654']

#~ >Exit code: 0    Time: 0.052

Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言,设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。

扩展资料:

python参考函数

vars(obj) 返回一个object的name space。用dictionary表示

locals() 返回一个局部name space,用dictionary表示

globals() 返回一个全局name space,用dictionary表示

type(obj) 查看一个obj的类型

isinstance(obj,cls) 查看obj是不是cls的instance

issubclass(subcls,supcls) 查看subcls是不是supcls的子类

参考资料来源:百度百科-Python (计算机程序设计语言)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-24

试试?不晓得你要的输出是啥形式,随便写的输出:

(补充,tim_spac提供的函数是正解--输出格式是列表,刚开始学python,下面的实现供参考)

def jiequ(word,c):
before=''
after=''
i=0
if len(word)<=1:
return(before+' '+after)
else:
while i<=(len(word)-1):
if word[i]==c:
if i>0:
before=word[:i]
if i<(len(word)-1):
after=word[i+1:]
return (before+' '+after)
i=i+1
return (before+' '+after)
#test
print(jiequ('4564612131856+654654654654','+'))

第2个回答  2013-04-24
while myString[i] == "+"
i=i+1
new_string = myString[ i : ]
第3个回答  推荐于2017-09-24
#!/usr/bin/python
# encoding: utf-8
# filename: baiduzhidao.py
ln = "4564612131856+654654654654"
print ln.split("+")
#~ Result:
#~ >python -u "baiduzhidao.py"
#~ ['4564612131856', '654654654654']
#~ >Exit code: 0 Time: 0.052

追问

def change():
import string
e=string.atoi(c)
f=string.atoi(d)
x = c + d
print '结果为:',x
a = str(raw_input('请输入运算式:'))
if a.count('+') == 1:
b='+'
c= a[0:a.index(b)]
d= a[a.index(b)+1:]
change()

我是这么写的,但是为什么最后总是字符串相加

追答

def change():
import string
e=string.atoi(c)
f=string.atoi(d)
# c, d 为转换前的str; e,f为转换后的int
x = c + d # 这里用的仍然是str, 所以还是字符串相加, 恐怕应改为 x = e + f
print '结果为:',x

或者:
>>> import string
>>> ln = "4564612131856+654654654654"
>>> sum(map(string.atoi, ln.split("+")))
5219266786510L
>>> eval(ln)
5219266786510L
>>>

本回答被提问者采纳
相似回答