应聘python字符串的题目_python面试_总结04_字符串练习题

完成下列列表相关的编程题,先运行下列的test函数,在完成每道题之后,都可以通过调用test函数检测所写函数对错

deftest(got, expected):if got ==expected:

prefix= '正确!'

else:

prefix= '错误!'

print('%s 你的结果: %s 应该返回的结果: %s' % (prefix, repr(got), repr(expected)))

字符串练习题

习题1

输入一个字符串s,返回由字符串的最前面两个字母和最后两个字母组成的字符串。

例如: 'spring' 返回 'spng', 'is' 返回 'is'

当输入的字符串长度小于2时,返回空字符串

defboth_ends(s):#+++your code here+++

#当输入的字符串长度小于2时,返回空字符串

if len(s) < 2:print("字符串长度小于2")return ""

#字符串此时 >= 2

#如果字符串长度等于2,返回自身

if len(s) == 2:print("字符串长度等于2")returns#print("前两个字符:", s[:2])

#print("后两个字符:", s[-2:])

s = s[:2] + s[-2:]return s

#可运行代码自测

test(both_ends('spring'), 'spng')

test(both_ends('Hello'), 'Helo')

test(both_ends('a'), '')

test(both_ends('xyz'), 'xyyz')

test(both_ends('is'), 'is')

正确! 你的结果: 'spng' 应该返回的结果: 'spng'

正确! 你的结果: 'Helo' 应该返回的结果: 'Helo'

字符串长度小于2

正确! 你的结果: '' 应该返回的结果: ''

正确! 你的结果: 'xyyz' 应该返回的结果: 'xyyz'

字符串长度等于2

正确! 你的结果: 'is' 应该返回的结果: 'is'

习题2

输入一个字符串s, 返回满足以下条件的字符串

1.找出与字符串的第一个字母相同的字母,把它们替换成 '*',除了第一个字母本身以外

例如: 输入'babble', 返回 'ba**le'

提示:使用 s.replace(stra, strb) 函数,可以将字符串 s 中的所有 子字符串stra 替换为 子字符串strb

deffix_start(s):#+++your code here+++

#得到第一个字母

str_0 =s[0]#这样会全部替换掉

s = s.replace(str_0, "*")#这里利用字符串的拼接修复

s = str_0 + s[1:]return s

#可运行代码自测

test(fix_start('babble'), 'ba**le')

test(fix_start('aardvark'), 'a*rdv*rk')

test(fix_start('google'), 'goo*le')

test(fix_start('donut'), 'donut')

正确! 你的结果: 'ba**le' 应该返回的结果: 'ba**le'

正确! 你的结果: 'a*rdv*rk' 应该返回的结果: 'a*rdv*rk'

正确! 你的结果: 'goo*le' 应该返回的结果: 'goo*le'

正确! 你的结果: 'donut' 应该返回的结果: 'donut'

习题3

输入字符串 a 和 b, 返回添加以下条件的字符串

1.使用空格把两个字符串分隔后合并成一个字符串

2.交换两个字符串的最前面的 两个字母

3.字符串 a 和 b 的长度都大等于2

例如:

'mix', 'pod' -> 'pox mid'

'dog', 'dinner' -> 'dig donner'

defmix_up(a, b):#+++your code here+++

assert len(a) >= 2 and len(b) >= 2, "长度需满足条件"

#1、得到两个字符串的前两个字母

a_2 = a[:2]

b_2= b[:2]#2、进行字符串拼接(字符串是不可变类型)

a = b_2 + a[2:]

b= a_2 + b[2:]#3、使用空格,将两个字符串合并成一个字符串

s = a + " " +breturn s

#可运行代码自测

test(mix_up('mix', 'pod'), 'pox mid')

test(mix_up('dog', 'dinner'), 'dig donner')

test(mix_up('gnash', 'sport'), 'spash gnort')

test(mix_up('pezzy', 'firm'), 'fizzy perm')

正确! 你的结果: 'pox mid' 应该返回的结果: 'pox mid'

正确! 你的结果: 'dig donner' 应该返回的结果: 'dig donner'

正确! 你的结果: 'spash gnort' 应该返回的结果: 'spash gnort'

正确! 你的结果: 'fizzy perm' 应该返回的结果: 'fizzy perm'

2.1.2.4  习题4

输入一个字符串,返回满足以下条件的字符串

1.如果字符串长度大等于3,添加 'ing' 到字符串的末尾

2.如果字符串是以 'ing' 结尾的,就在末尾添加 'ly'

3.如果字符串长度小于3,返回原字符串

defverbing(s):#+++your code here+++

#字符串长度小于3,返回原字符串

if len(s) < 3:returns#字符串长度>=3

#字符串是以 'ing' 结尾的

if s.endswith("ing"):#在末尾添加 'ly'

return s + "ly"

#字符串长度>=3(且自身不是以"ing"结尾的),添加 'ing' 到字符串的末尾

s = s + "ing"

return s

#可运行代码自测

test(verbing('hail'), 'hailing')

test(verbing('swiming'), 'swimingly')

test(verbing('do'), 'do')

正确! 你的结果: 'hailing' 应该返回的结果: 'hailing'

正确! 你的结果: 'swimingly' 应该返回的结果: 'swimingly'

正确! 你的结果: 'do' 应该返回的结果: 'do'

习题5

考虑把一个字符串拆分成两个等分

1.如果字符串长度是偶数,前一半和后一半的长度是相同的

2.如果字符串长度是奇数,则多出的一个字符加到前一半,如:'abcde',前一半是'abc',后一半是'de'

3.输入两个字符串, a 和 b,按以下格式返回结果

a-front + b-front + a-back + b-back

deffront_back(a, b):#+++your code here+++

#得到a和b的长度

a_len =len(a)

b_len=len(b)#如果是偶数

if a_len % 2 ==0:#前一半的索引

#print(a_len / 2) 2.0

a_mid = int(a_len / 2) #必须要类型转换,否则是浮点型

#如果是奇数

else:

a_mid= int((a_len + 1) / 2)#如果是偶数

if b_len % 2 ==0:#前一半的索引

b_mid = int(b_len / 2)#如果是奇数

else:

b_mid= int((b_len + 1) / 2)#1、分别取出两个字符串的前半部分

front = a[:a_mid] +b[:b_mid]#2、后半部分

back = a[a_mid:] +b[b_mid:]return front + back

#可运行代码自测

test(front_back('abcd', 'xy'), 'abxcdy')

test(front_back('abcde', 'xyz'), 'abcxydez')

test(front_back('Kitten', 'Donut'), 'KitDontenut')

正确! 你的结果: 'abxcdy' 应该返回的结果: 'abxcdy'

正确! 你的结果: 'abcxydez' 应该返回的结果: 'abcxydez'

正确! 你的结果: 'KitDontenut' 应该返回的结果: 'KitDontenut'

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值