《Python核心编程》第6章 习题

6-2. 字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你.import stringimport keywordalphas=string.letters+'_'num=string.digitsaplpnums
摘要由CSDN通过智能技术生成

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

import string
import keyword

alphas=string.letters+'_'
num=string.digits
aplpnums=alphas+num

print 'Testees must be at least 1 char long.'
myinput=raw_input('Identifier to test? ')

if len(myinput)>=1:
    if myinput[0] not in alphas:
        print 'invalid: first symbol must be alphabetic'
    else:
        for otherchar in myinput [1:]:
            if otherchar not in aplpnums:
                print 'invalid: remaining symbols must be alphanumeric'
                break
        else:
            if myinput in keyword.kwlist:
                print 'invalid: symbol is reserved as keyword'
            else:
                print 'okay as an identifier'

6-3 

排序

(a) 输入一串数字,从大到小排列之.

(b) 跟 a 一样,不过要用字典序从大到小排列之

(a)
numstr=raw_input('input some numbers: ')
numlist=list(numstr)
n=len(numlist)
for i in range(0,n):
    for j in range(0,n-i-1):
        if int(numlist[j])<int(numlist[j+1]):
            temp=numlist[j]
            numlist[j]=numlist[j+1]
            numlist[j+1]=temp
numlist.sort()
numlist.reverse()
print numlist
(b)
numstr=raw_input('input some numbers: ')
numlist=list(numstr)
numlist.sort()
numlist.reverse()
print numlist

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

score=[65,76,87,98]
print (sum(score)/len(score))

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

(a)
s=raw_input('Enter a string:')  
i=0  
while i<len(s):  
    print s[0:i+1],
    i+=1
print
j=0
rs=''
while j<len(s):
    rs+=s[-1-j]
    print rs,
    j+=1
(b)
str1=raw_input('Enter 1st string:')
str2=raw_input('Enter 2nd string:')
newstr1=str1.lower()
newstr2=str2.lower()
if len(str1) != len(str2):
    print "not equal"
else:
    for i in range(len(str1)):
        if newstr1[i] != newstr2[i]:
            print "not equal"
            break
    else:
        print "equal"
(C)
str=raw_input('Enter 1st string:')
l=len(str)
if l % 2 == 0:
    for i in range(l/2):
        if str[i]!=str[l-1-i]:
            print "not repeat"
            break
    else:
        print "repeat"
elif l % 2 != 0:
    for i in range(l/2):
        if str[i]!=str[l-i-1]:
            print "not repeat"
            break
    else:
        print "repeat"
(d)
str1=raw_input('Enter 1st string:')
str2=str1 + str1[::-1]
pr
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值