Python核心编程 练习 第六章

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

i = '123'
j = '1234'
i in j


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

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import string
import keyword
alphas = string.letters
nums = string.digits
print 'The Identifier  Checker'
myString = raw_input('Input the Identifier to check:')
if myString in keyword.kwlist:
    print 'Invalid:It is a keyword.'
else:
    if myString[0] not in alphas + '_':
        print 'Invalid:First symbol must be alphabetic or underline.'
    else:
        for c in myString[1:]:
            if c not in alphas + nums:
                print 'Invalid:Symbols must be alphabetic or numbers'
            print 'The identifier is ok.'

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

#(a)
#!/usr/bin/env python
#-*- coding:utf-8 -*-

list1 = []
while True:
    n = int(raw_input('输入一些数字以0结束:'))
    if n == 0:
        break
    list1.append(n)

list1.sort()
print list1

#(b)
list2 = []
while True:
    n = raw_input('输入一些数字以0结束:')
    if n == '0':
        break
    list2.append(n)
list2.sort()
print list2

#6–6. 字符串.创建一个string.strip()的替代函数:接受一个字符串,去掉它前面和后面的空格

#!usr/bin/env python
#-*- coding:utf-8 -*-
str = raw_input('Input a string you want to operate:')
i = 0
j = len(str) - 1
while str[i] == ' ':
    i += 1
    
while str[j] == ' ':
    j -= 1
    
str = str[i:j+1]
print str

#6–9. 转换.为练习5-13 写一个姊妹函数, 接受分钟数, 返回小时数和分钟数. 总时间不变,并且要求小时数尽可能大. 

#!usr/bin/env python
#-*- coding:utf-8 -*-

n = int(raw_input('输入分钟数:'))

i = n / 60
j = n % 60
print '%d : %d' % (i, j)

#6–10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转. 比如,输入"Mr.Ed",应该返回"mR.eD"作为输出

#!usr/bin/env python
#-*- coding:utf-8 -*-

def mySwapcase(myString):
    return myString.swapcase()
    
str = raw_input('Input a string your want to operace:')
print mySwapcase(str)

#6–12.字符串  
#(a)创建一个名字为findchr()的函数,函数声明如下:def findchr(string, char)  
#findchr()要在字符串string 中查找字符char,找到就返回该值的索引,否则返回-1.不能用  
#string.*find()或者string.*index()函数和方法  
#(b)创建另一个叫rfindchr()的函数,查找字符char 最后一次出现的位置.它跟findchr()工作  
#类似,不过它是从字符串的最后开始向前查找的.  
#(c)创建第三个函数,名字叫subchr(),声明如下:def subchr(string, origchar, newchar)  
#subchr()跟findchr()类似,不同的是,如果找到匹配的字符就用新的字符替换原先字符.返回  
#修改后的字符串.  

#!usr/bin/env python
#-*- coding:utf-8 -*-

def findchr(string, char):
    i = 0
    while i < len(string):
        if string[i] == char:
            return i
        i += 1
    return -1
    
def rfindchar(string, char):
    i = len(string)-1
    while i >= 0:
        if string[i] == char:
            return i
        i -= 1
    retrun -1
    
def subchr(myString, origchar, newchar):
    #把string中的origchar字符替换成newchar
    import string
    string.replace(myString,origchar, newchar)
    
#实例化
myString = 'abcdefghijck'
print findchr(myString, 'c')
print rfindchar(myString, 'c')
subchr(myString, 'c', 'X')
print myString


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值