首页 新闻 会员 周边

Python字符串问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2011-02-12 09:45

最近在看一本书,并按着书上的练习题在练习着,但是我自己做的题目左看看右看看总觉得怪怪的。发出来希望牛掰人士们能给我点提示,使代码更健壮点:

1.获取一个的字符串,按要求输出出来,要求是:依次输出字符串的每个字符,每次输出一个字符都必须连同该字符的前一个字符和后一个字符一起输出(如果有的话)。

#!D:|Python31\Python.exe
#
Filename:6-5(a).py

def specal1New(strPython):
'''向前向后显示一个字符串的一个字符'''
for s in strPython:
if strPython.index(s)==0:
print(strPython[:2],strPython.index(s))
elif strPython.index(s)==len(strPython):
print(strPython[len(strPython)-2:],strPython.index(s))
else:
print(strPython[strPython.index(s)-1:strPython.index(s)+2],strPython.index(s))


def func():
strP
=input('Enter a string:')
#printSpecal2(strP)
specal1New(strP)

if __name__=='__main__':
func()

 

2.扫描判断两个字符串是否相等(只能扫描)。

代码
#!D:\Python31\python.exe
#
Filename:6-5(b).py


def strSame(str1,str2):
'''Use while'''
if len(str1)!=len(str2):
return False
i
=0
while i<len(str1):
if str1[i] is not str2[i]:
return False
else:
i
+=1
return True

def strScan(str1,str2):
'''Scan'''
print(str1 and str2)
if len(str1)!=len(str2):
return False
return (len(str1 and str2))==len(str1)


def func():
str1
=input('Enter the first string:\n')
str2
=input('Enter the anther:\n')
if strScan(str1,str2):
print('Yes')
else:
print('No')

if __name__=='__main__':
func()



 

3.判断一个字符串是否重现(貌似理解错了,当成判断一个字符串出现在另一个字符串中的次数了,所以这个判断次数也算上,谢谢,共四个问题。)

代码
#!D:|Python31\python.exe
#
Filename:6-5(c).py

def strTimes(strA,strB):
'''use str.split()to get the num B in A'''
return len(strA.split(strB))-1

def func():
strA
=input('Enter strA:\n')
strB
=input('Enter strB:\n')
print(strTimes(strA,strB))

if __name__=='__main__':
func()

 

Dfly的主页 Dfly | 初学一级 | 园豆:74
提问于:2011-02-11 16:49
< >
分享
所有回答(2)
0

是要看你做好的吗?还是?

iTech | 园豆:202 (菜鸟二级) | 2011-02-11 18:34
不是的,我在找人给我优化
支持(0) 反对(0) Dfly | 园豆:74 (初学一级) | 2011-02-12 09:29
0

第一个可以精简为类似如下:

s='afhkfhkshf'
for i in range(1,len(s)-1):
print s[i-1:i+2]

大博 | 园豆:202 (菜鸟二级) | 2016-07-13 17:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册