6-5.
字符串。
(a)更新你在练习2-7里面的方案,使之可以每次向前向后都显示一个字符串的一个字符。
(b)通过扫描来判断两个字符串是否匹配(不能使用比较操作符或者cmp()内建函数)。
附加题:在你的方案里加入大小写区分。
(c)判断一个字符串是否重现(后面跟前面一致)。附加题:在处理除了严格的回文之外,加入对例如控制符号和空格的支持。
(d)接受一个字符串,在其后面加一个反向的拷贝,构成一个回文字符串。

【参考】
2-7.
循环和字串。从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用while循环实现,然后再用for循环实现。
【2-7的答案】
代码如下:
a = raw_input("Please input a string ... ")
print 'Display in for loop:'
for i in a:
    print i,
print '\nDisplay in while loop:'
j = 0
while (j < len(a)):
    print a[j]
    j = j + 1

【答案】
(a)
代码如下:
a = raw_input("Please input a string ... ")
j = 0
print a[j] + a[j+1],
while (j < len(a) - 2):
    j = j + 1
    print a[j-1] + a[j] + a[j+1],
j = len(a)
print a[j-2] + a[j-1]   
【(a)执行结果】
Please input a string ... apple
ap app ppl ple le

(b)
代码如下:
a = raw_input("Please input a string A... ")
b = raw_input("Please input a string B... ")
trigger = True
if len(a) != len(b):
    trigger = False
else:
    for i in range(len(a)):
        if a[i] !=  b[i]: trigger = False
if trigger: print 'String A matches string B!'
else: print 'String A does not match string B!'
       
(c)
代码如下:
a = raw_input("Please input a string ... ")
plalindrome = False
j = 1
while len(a) >= 2 and j <= len(a)-1:
    if a[j-1] == a[j] and j <= len(a) - 2:
        print a[j-1] + a[j],
        plalindrome = True
    if j == len(a)-1 and a[j] == a[j-1]:
        print a[j-1] + a[j],
        plalindrome = True
    j = j + 1
if not plalindrome: print 'No plalindrome!'
【未完】这段代码还有优化的空间。另外,可能对题目含义理解并不清楚。

(d)
代码如下:
a = raw_input("Please input a string ... ")
print a + a[::-1]
【未完】可能对题目含义理解并不清楚。
【(d)执行结果】
Please input a string ... apple
appleelppa

6-6.
字符串。创建一个string.strip()的替代函数:接受一个字符串,去掉它前面和后面的空格(如果使用string.*strip()函数那本练习就没有意义了)
【答案】
代码如下:
def strip(str):
    str_b = str[1:-1]
    return str_b

a = raw_input('Please input a string, begin and ending with space: ...')
if a[0] == ' ' and a[len(a)-1] == ' ':
    print strip(a)
else: print'This string should begin and end with space.'

关键词:python核心编程答案 非官方 博客园

posted on 2011-02-15 09:07  balian  阅读(1616)  评论(9编辑  收藏  举报