今天是第一天,主要练习字符串的使用。
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//2
if c%2==0:
print(s[0:d]+' '+s[d:])
else:
print(s[0:d+1]+' '+s[d+1:])