def idcheck():
'''6-2 修改idcheck使之可以检测长度为一得标识符,并且可识别
Python 关键字
'''
import string
import keyword
keys = keyword.kwlist
alphas = string.letters+'_'
nums = string.digits
alphanums = alphas+nums
print 'Welcome to the Identifier Check V1.1'
myInput = raw_input('identifier to test: ')
isOne = False # 是否是一个字符
if len(myInput) == 1:isOne = False
'''6-2 修改idcheck使之可以检测长度为一得标识符,并且可识别
Python 关键字
'''
import string
import keyword
keys = keyword.kwlist
alphas = string.letters+'_'
nums = string.digits
alphanums = alphas+nums
print 'Welcome to the Identifier Check V1.1'
myInput = raw_input('identifier to test: ')
isOne = False # 是否是一个字符
if len(myInput) == 1:isOne = False
if myInput in keys:
print '''invalid:symbol has been defined'''
return False
elif myInput[0] not in alphas:
print '''invalid:first symbol must be alphabetic'''
return False
elif not isOne:
otherInput = myInput[1:]
for otherChar in otherInput:
if otherChar not in alphanums:
print '''invalid:remainn symbols must be alphanumeric'''
return False
print "okay as an Identifier"
return True
return False
elif myInput[0] not in alphas:
print '''invalid:first symbol must be alphabetic'''
return False
elif not isOne:
otherInput = myInput[1:]
for otherChar in otherInput:
if otherChar not in alphanums:
print '''invalid:remainn symbols must be alphanumeric'''
return False
print "okay as an Identifier"
return True
def order(nlist):
'''6-3(a) 输入一串数字,从大到小排列
'''6-3(a) 输入一串数字,从大到小排列
注意:输入的是一个列表,其中的值为数字
'''
newlist = []
for x in nlist:
newlist.append(int(x))
return sorted(newlist,reverse=True)
'''
newlist = []
for x in nlist:
newlist.append(int(x))
return sorted(newlist,reverse=True)
def order2(nlist):
'''6-3(b) 和a一样,不过要用字典序
注意:字典序就是按字典的排列方式,比如 21 就大于 111 ,因为 2大于1
方式就是把输入的数字变成字符串即可
'''
# 将里面的元素统统变成字符串先
newlist = []
for x in nlist:
newlist.append(str(x))
newlist = sorted(newlist,reverse=True)
for i,x in enumerate(newlist):
newlist[i] = int(x)
return newlist
newlist = sorted(newlist,reverse=True)
for i,x in enumerate(newlist):
newlist[i] = int(x)
return newlist
def avescore():
'''输入测试得分,算出平均值'''
scorelist = [] # 分数列表
while True:
myinput = raw_input('Input the score(if No number quite): ')
try:
scorelist.append(float(myinput))
except:
break
if not len(scorelist):return False
'''输入测试得分,算出平均值'''
scorelist = [] # 分数列表
while True:
myinput = raw_input('Input the score(if No number quite): ')
try:
scorelist.append(float(myinput))
except:
break
if not len(scorelist):return False
return sum(scorelist)/len(scorelist)
def showstr():
'''6-5(a) 更新2-7 使之可以每次向前向后都显示一个字符串的一个字符'''
istr = raw_input('Input string: ')
lens = len(istr)
if lens==0:return False
if lens==1:
print istr
return True
for i,j in enumerate(istr):
if i ==0 and len(istr)!=1:
print j,istr[i+1]
elif i == len(istr)-1 and i != 0:
print istr[i-1]
else:
'''6-5(a) 更新2-7 使之可以每次向前向后都显示一个字符串的一个字符'''
istr = raw_input('Input string: ')
lens = len(istr)
if lens==0:return False
if lens==1:
print istr
return True
for i,j in enumerate(istr):
if i ==0 and len(istr)!=1:
print j,istr[i+1]
elif i == len(istr)-1 and i != 0:
print istr[i-1]
else:
print istr[i-1],j,istr[i+1]
return True
return True
def mycmp():
'''6-5(b)通过扫描判断两个字符串是否匹配,不能使用比较操作符或者 cmp()'''
python index函数 str1 = raw_input('First string:')
str2 = raw_input('Second string:')
equal = len(str1) - len(str2)
if not equal:return False # 表示长度不相等
# 将字符串变成列表
for i,j in enumerate(str1):
if ord(j)-ord(str2[i]):#如果减下来不为0
return False
return True
'''6-5(b)通过扫描判断两个字符串是否匹配,不能使用比较操作符或者 cmp()'''
python index函数 str1 = raw_input('First string:')
str2 = raw_input('Second string:')
equal = len(str1) - len(str2)
if not equal:return False # 表示长度不相等
# 将字符串变成列表
for i,j in enumerate(str1):
if ord(j)-ord(str2[i]):#如果减下来不为0
return False
return True
def isback():
'''6-5(c)判断一个字符串是否是回文,忽略控制符号和空格[支持中文]'''
import string
# 控制符表示 ASCII 码中 0~31 以及127 这33个无法输出的字符
denny = [chr(i) for i in xrange(0,32)]+list(string.whitespace)
denny.append(chr(127))
import string
# 控制符表示 ASCII 码中 0~31 以及127 这33个无法输出的字符
denny = [chr(i) for i in xrange(0,32)]+list(string.whitespace)
denny.append(chr(127))
strs = raw_input('Please input string:')
# 将输入的数据解码成unicode 因为在windows上默认是gbk,所以这里是gbk
# 如果是在其他命令行中,应该以命令行输入的字符编码为主
strs = strs.decode('gbk')
new = []
for i in strs:
if i in denny:continue
new.append(i)
lens = len(new)
if lens%2:return False
# 将输入的数据解码成unicode 因为在windows上默认是gbk,所以这里是gbk
# 如果是在其他命令行中,应该以命令行输入的字符编码为主
strs = strs.decode('gbk')
new = []
for i in strs:
if i in denny:continue
new.append(i)
lens = len(new)
if lens%2:return False
else:
half = lens/2
if new[0:half] == new[-1:-half-1:-1]:return True
return False
half = lens/2
if new[0:half] == new[-1:-half-1:-1]:return True
return False
def beback():
'''6-5(d) 输入一个字符串在后面重复一个反向拷贝,构成回文'''
strs = raw_input('Input string: ')
# 将输入的数据解码成unicode 因为在windows上默认是gbk,所以这里是gbk
# 如果是在其他命令行中,应该以命令行输入的字符编码为主
strs = strs.decode('gbk') # 解码为 unicode
lens = len(strs)
'''6-5(d) 输入一个字符串在后面重复一个反向拷贝,构成回文'''
strs = raw_input('Input string: ')
# 将输入的数据解码成unicode 因为在windows上默认是gbk,所以这里是gbk
# 如果是在其他命令行中,应该以命令行输入的字符编码为主
strs = strs.decode('gbk') # 解码为 unicode
lens = len(strs)
# 这里之所以是 -1:-lens-1:-1
# 分析如下: -1就是倒数第一个,-(lens+1) 就是长度,-1是步进
# 就是说从倒数第一个开始-1(步进),一直减到倒数 lens+1,由于切片里是 [a:b] 是 a<=x<
# 分析如下: -1就是倒数第一个,-(lens+1) 就是长度,-1是步进
# 就是说从倒数第一个开始-1(步进),一直减到倒数 lens+1,由于切片里是 [a:b] 是 a<=x<
b的,
# 所以这里是 lens+1 而不是 lens
return strs+strs[-1:-lens-1:-1]
# 所以这里是 lens+1 而不是 lens
return strs+strs[-1:-lens-1:-1]
def strip():
'''6-6 去掉输入的字符串的前面和后面的空格'''
strs = raw_input('Input string: ').decode('gbk')
new = u''
# 由于只是去掉前面和后面的空格,所以不能遍历全部
# 分析,从前面遍历到非空格停止,从后面遍历到非空格位置
# 为了方便,我首先将字符串变成了列表
strs = list(strs)
lens = len(strs)
for i in range(0,lens): # 从前面开始遍历
if strs[i] == ' ':strs[i] =''
else:break
'''6-6 去掉输入的字符串的前面和后面的空格'''
strs = raw_input('Input string: ').decode('gbk')
new = u''
# 由于只是去掉前面和后面的空格,所以不能遍历全部
# 分析,从前面遍历到非空格停止,从后面遍历到非空格位置
# 为了方便,我首先将字符串变成了列表
strs = list(strs)
lens = len(strs)
for i in range(0,lens): # 从前面开始遍历
if strs[i] == ' ':strs[i] =''
else:break
for i in range(-1,-lens-1,-1):
if strs[i] == ' ':strs[i] = ''
else:break
# 将 list 转成字符串
nstrs = ''
for i in range(0,lens):
nstrs +=strs[i]
return nstrs
if strs[i] == ' ':strs[i] = ''
else:break
# 将 list 转成字符串
nstrs = ''
for i in range(0,lens):
nstrs +=strs[i]
return nstrs
def num2eng():
'''6-8 输入一个整数,返回相应的英文,限定0~1000'''
lists = ['zero','one','two','three','four','five','six','seven','eight','nine']
new =''
'''6-8 输入一个整数,返回相应的英文,限定0~1000'''
lists = ['zero','one','two','three','four','five','six','seven','eight','nine']
new =''
while True:
try:
try:
iput = int(raw_input('Please input a int(0~1000): '))
if iput <0 or iput >1000:
continue
except:
continue
break
if iput <0 or iput >1000:
continue
except:
continue
break
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论