10月30日(第1天_字符串练习)

来源:互联网 发布:go并发编程实战完整版 编辑:程序博客网 时间:2024/05/17 09:02

今天是第一天,主要练习字符串的使用。


1. 输入一个整数(表示donuts的数量),返回一个字符串,格式如下:’Number of donuts: (count)’,其中 (count)是传入的参数。但是,如果值大等于10,则使用“many”代替实际的数值。所以:输入 donuts(5) 返回 ‘Number of donuts: 5’,输入 donuts(23) 返回 ‘Number of donuts: many’

解答:

def donuts(count):    if int(count)>=10:        count = 'many'        print('Number of donuts:'+ count)    else:        print('Number of donuts:{}'.format(count))donuts(2)

2. 输入一个字符串 s,返回由字符串的最前面两个字母和最后两个字母组成的字符串。例如:’spring’返回’spng’,’is’ 返回’is’。当输入的字符串长度小于2时,返回空字符串。

解答:

def first_last_str(s):    if len(s) < 2:        return()    elif len(s) == 2:        return(s)    else:        return(s[0:1]+s[-2:-1])first_last_str('sti')

3. 输入一个字符串s, 返回满足以下条件的字符串:找出与字符串的第一个字母相同的字母,把它们替换成’*’,除了第一个字母本身以外
例如: 输入’babble’, 返回’ba**le’。
(提示:使用 s.replace(stra, strb) 函数,可以将字符串 s 中的所有 子字符串stra 替换为 子字符串strb)。

解答:

def same_replace(s):    d = s[0]    c = s.replace(s[0],'*')    return(d+c[1:])same_replace('strrsing')

4. 输入字符串 a 和 b, 返回添加以下条件的字符串:(1)使用空格把两个字符串分隔后合并成一个字符串;(2)交换两个字符串的最前面的两个字母;(3)字符串 a 和 b 的长度都大等于2。

解答:

def deal_a_b(a,b):    if len(a)>=2 and len(b)>=2:        s = a[0:2]+b[2:]        t = b[0:2]+a[2:]        print(s,t)    else:        print(a,b)deal_a_b('string','China')deal_a_b('C','Strint')

5. 输入一个字符串,返回满足以下条件的字符串:(1)如果字符串长度大等于3,添加’ing’到字符串的末尾;(2)如果字符串是以’ing’结尾的,就在末尾添加’ly’;(3)如果字符串长度小于3,返回原字符串。

解答:

def string_practice(s):    if len(s)>=3:        if s.endswith('ing'):            print(s+'ly')        else:            print(s+'ing')    else:        print(s)string_practice('string') #如果函数中的print用return就只返回一个   string_practice('strtrtrtr')  

6. 输入一个字符串,返回满足以下条件字符串:(1)找到字符串中的子串 ‘not’ 和 ‘bad’;(2)如果 ‘bad’ 出现在 ‘not’ 后面,就把 ‘not’ … ‘bad’ 之间包含的所有字符串替换成 ‘good’.

解答:

def not_good_bad(s):    if  'not'in s  and  'bad'in s:        a = s.index('not')        b = s.index('bad')        if a<b:            s = s[0:a]+'good'+s[b+3:]    return(s)not_good_bad('snotghbad')

7. 考虑把一个字符串拆分成两个等分:(1)如果字符串长度是偶数,前一半和后一半的长度是相同的;(2)如果字符串长度是奇数,则多出的一个字符加到前一半,如:’abcde’,前一半是’abc’,后一半是’de’。

解答:

s = 'strings'c = len(s)d = c//2if c%2==0:    print(s[0:d]+' '+s[d:])else:    print(s[0:d+1]+' '+s[d+1:])
原创粉丝点击