《Python核心编程》第6章 序列:字符串、列表和元组 练习

6–1. 字符串.

string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分?

# coding=utf-8
__author__ = 'Ibuki Suika'

if __name__ == '__main__':
    s1 = raw_input('input a string: ')
    s2 = raw_input('input a substring: ')
    print(s1.find(s2) <> -1)

6–2. 字符串标识符.

修改例6-1 的idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别Python 关键字,对后一个要求,你可以使用keyword 模块(特别是keyword.kelist)来帮你.

import string
import keyword

alphas = string.letters + '_'
nums = string.digits
keywords = keyword.kwlist

print 'Welcome to the Identifier Checker v2.0'
myInput = raw_input('Identifier to test? ')


if myInput[0] not in alphas:
    print 'invalid: first symbol must be alphabetic'
else:
    sets = alphas + nums
    mark = True
    for ch in myInput[1:]:
        if ch not in sets:
            print 'invalid: remaining symbols must be alphanumeric'
            mark = False
            break
    if myInput in keywords:
        print "invalid: can't be keywords"
        mark = False
    if mark:
        print 'okay as an identifier'

6–3. 排序
(a) 输入一串数字,从大到小排列之.
(b) 跟a 一样,不过要用字典序从大到小排列之.

# coding=utf-8
__author__ = 'Ibuki Suika'

if __name__ == '__main__':
    s = raw_input('input some numbers: ').split()
    nums = [int(i) for i in s]

    nums.sort()
    nums.reverse()
    print(nums)

    s.sort()
    s.reverse()
    print(s)

6–4. 算术.

更新上一章里面你的得分测试练习方案,把测试得分放到一个列表中去.你的代码应该可以计算出一个平均分,见练习2-9 和练习5-3.

def level(score):
    if score >= 90:
        return 'A'
    elif score >= 80:
        return 'B'
    elif score >= 70:
        return 'C'
    elif score >= 60:
        return 'D'
    else:
        return 'F'

str = raw_input('your scores: ').split()
average = 0
scores = []
for n in str:
    num = int(n)
    scores.append(level(num))
    average += num

average /= float(len(scores))
print 'average score is %.2f' % average
print scores

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

s = raw_input('string: ')
for ch in s:
    print ch,
print
for ch in reversed(s):
    print ch,


                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值