计算机理论python字符串作业_[Python基础 ] Day_07_作业参考答案

''''''

''' 基础题 '''

# 1.已知字符串:“this is a test of Python”

# a.统计该字符串中字母s出现的次数

# b.取出子字符串“test”, 用切片,不能数,使用find(),len()

# c.采用不同的方式将字符串倒序输出

# d.将其中的"test"替换为"exam"

# a.统计该字符串中字母s出现的次数

s = 'this is a test of Python'

print(s.count('s'))

# b.取出子字符串“test”, 用切片,不能数,使用find(),len()

substr = 'test'

start = s.find(substr)

end = start + len(substr)

print(s[start:end])

# c.采用不同的方式将字符串倒序输出

print(s[::-1])

s2 = reversed(s)

print("".join(s2))

# d.将其中的"test"替换为"exam"

print(s.replace('test', 'exam'))

# 2.去掉字符串123@zh@qq.com中的@;

# 提示: replace('@', '')

s = '123@zh@qq.com'

print(s.replace('@', ''))

''' 进阶题 '''

# 1.已知字符串 s = "aAsmr3idd4bgs7Dlsf9eAF",要求如下

# a.请将s字符串的大写改为小写,小写改为大写

# b.请将s字符串的数字取出,并输出成一个新的字符串

# c.请统计s字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),

# 并输出成一个字典。 例 {'a':4,'b':2}

# d.输出s字符串出现频率最高的字母, 如果有多个最高,将每个都输出.

# e.请判断'boy'字符串中的每一个字母,是否都出现在s字符串里。

# 如果出现,则输出True,否则,则输出False

s = "aAsmr3idd4bgs7Dlsf9eAF"

# a.请将s字符串的大写改为小写,小写改为大写

print(s.swapcase())

# b.请将s字符串的数字取出,并输出成一个新的字符串

s2 = ''

for c in s:

if c.isdigit():

s2 += c

print(s2)

# c.请统计s字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),

# 并输出成一个字典。 例 {'a':4,'b':2}

s = "aAsmr3idd4bgs7Dlsf9eAF"

d = {}

for c in s:

if c.isalpha():

c = c.lower()

if c not in d:

d[c] = 1

else:

d[c] = d[c] + 1

print(d)

# d.输出s字符串出现频率最高的字母, 如果有多个最高,将每个都输出.

big = max(d.values())

for k,v in d.items():

if v == big:

print(k, end=' ')

print()

# e.请判断'boy'字符串中的每一个字母,是否都出现在s字符串里。

# 如果出现,则输出True,否则,则输出False

s = "aAsmr3idd4bgs7Dlsf9eAF"

substr = 'boy'

for c in substr:

if c not in s:

print(False)

break

else:

print(True)

# 2.将字符串按照单词进行逆序,空格作为划分单词的唯一条件

# 如传入:”Welome to Beijing”改为 “Beijing to Welcome”

s = 'Welome to Beijing'

l = s.split()

# l.reverse()

s2 = " ".join(l[::-1])

print(s2)

''' 挑战题 '''

# 1.输入一个字符串,压缩字符串如下aabbbccccbbd变成a2b5c4d1

s = 'aabbbccccbbd'

d = {}

for c in s:

if c not in d:

d[c] = 1

else:

d[c] += 1

print(d) # {'a': 2, 'b': 5, 'c': 4, 'd': 1}

s2 = ""

for k,v in d.items():

s2 += k

s2 += str(v)

print(s2)

s = 'aabbbccccbbd'

s2 = ''

for c in s:

if c not in s2:

s2 += c

s2 += str(s.count(c))

print(s2)

s = 'aabbbccccbbd' # a2b3c4b2d1

s2 = ""

n = 0

for i in range(len(s)):

if i == 0:

s2 += s[i]

n += 1

else:

if s[i] == s[i-1]:

n += 1

else:

s2 += str(n)

n = 1

s2 += s[i]

s2 += str(n)

print(s2)

# 2,将字符中单词用空格隔开

# 已知传入的字符串中只有字母,每个单词的首字母大写,

# 请将每个单词用空格隔开,只保留第一个单词的首字母大写

# 传入:”HelloMyWorld”

# 返回:”Hello my world”

s = 'HelloMyWorldHe'

s2 = s[0]

for i in range(1, len(s)):

if s[i].isupper():

s2 += " " + s[i].lower()

else:

s2 += s[i]

print(s2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值