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