python习题,关系字符串的练习

习题1

name = 'aleX leNb'

  • 1.1 移除name变量对应的值两边的空格,并输出结果

  • 1.2 判断name变量是否以'al'开头,并输出结果

  • 1.3 判断name变量是否以'Nb'结尾,并输出结果

  • 1.4 将name变量对应的值中的所有'l'替换为'p',并输出结果

  • 1.5 将name变量对应的值中的第一个'l'替换为'p',并输出结果

  • 1.6 将name变量对应的值根据所有的'l'分割,并输出结果

  • 1.7 将name变量对应的值根据第一个'l'分割,并输出结果

  • 1.8 将name变量对应的值变为大写,并输出结果

  • 1.9 将name变量对应的值变为小写,并输出结果

  • 1.10 判断name变量对应的值字母'l'出现几次,并输出结果

  • 1.11 判断name变量对应的值前4位'l'出现几次,并输出结果

  • 1.12 请输出name变量对应的值的第2个字符

  • 1.13 请输出name变量对应的值的前3个字符

  • 1.14 请输出name变量对应的值的后2个字符

name = 'aleX leNb'
print(1.1, name.strip())
print(1.2, name.startswith('al'))
print(1.3, name.endswith('NB'))
print(1.4, name.replace('l', 'p'))
print(1.5, name.replace('l', 'p', 1))
print(1.6, name.split('l'))
print(1.7, name.split('l', 1))
print(1.8, name.upper())
print(1.9, name.lower())
print(1.10, name.count('l'))
print(1.11, name.count('l', 0, 4))
print(1.12, name[1])
print(1.13, name[:3])
print(1.14, name[-2:])
# 运行结果:
# 1.1 aleX leNb
# 1.2 True
# 1.3 False
# 1.4 apeX peNb
# 1.5 apeX leNb
# 1.6 ['a', 'eX ', 'eNb']
# 1.7 ['a', 'eX leNb']
# 1.8 ALEX LENB
# 1.9 alex lenb
# 1.1 2
# 1.11 1
# 1.12 l
# 1.13 ale
# 1.14 Nb

习题2

s = '123a4b5c'

  • 2.1 通过对s切片形成新的字符串s1, s1 = '123'

  • 2.2 通过对s切片形成新的字符串s2, s2 = 'a4b'

  • 2.3 通过对s切片形成新的字符串s3, s3 = '1345'

  • 2.4 通过对s切片形成新的字符串s4, s4 = '2ab'

  • 2.5 通过对s切片形成新的字符串s5, s5 = 'c'

  • 2.6 通过对s切片形成新的字符串s6, s6 = 'ba2'

s = '123a4b5c'
# s1 = '123'
s1 = s[:3]
print('s1:', s1)

# s2 = 'a4b'
s2 = s[3:6]
print('s2:', s2)

# s3 = '1345'
s3 = s[::2]
print('s3:', s3)

# s4 = '2ab'
s4 = s[1:-2:2]
print('s4:', s4)

# s5 = 'c'
s5 = s[-1:]
print('s5:', s5)

# s6 = 'ba2'
s6 = s[-3::-2]
print('s6:', s6)
# 运行结果:
# s1: 123
# s2: a4b
# s3: 1345
# s4: 2ab
# s5: c
# s6: ba2

习题3

使用while和for循环分别打印字符串s='asdfer'中的每个元素

s = 'asdfer'
for i in s:
    print(i)

print('*' * 4)
i = 0
leng = len(s)
while i < leng:
    print(s[i])
    i += 1
# 运行结果
# a
# s
# d
# f
# e
# r
# ****
# a
# s
# d
# f
# e
# r

习题4

使用for循环对s = 'asdfer'进行循环,但是每次打印的内容都是'asdfer'

s = 'asdfer'
for i in s:
    print(s)

# 运行结果:
# asdfer
# asdfer
# asdfer
# asdfer
# asdfer
# asdfer

习题5

使用for循环对s = 'abcdefg'进行循环,每次打印的内容是每个字符加上'sb'
例如:asb,bsb,csb...gsb

s = 'abcdefg'
for i in s:
    print(i + 'sb')
# 运行结果:
# asb
# bsb
# csb
# dsb
# esb
# fsb
# gsb

习题6

使用for循环对s = '321'进行循环,打印的内容依次是:'倒计时3秒','倒计时2秒','倒计时1秒','出发!'

s = '321'
for i in s:
    print('倒计时{}秒'.format(i))
else:
    print('出发!')
# 运行结果:
# 倒计时3秒
# 倒计时2秒
# 倒计时1秒
# 出发!

习题7

实现一个整数加法计算器(两个数相加)
如:contert = input('请输出内容') 用户输入:5+9或5+ 9或5 + 9 结果:14

content = input('请输入内容:')
a, b = content.split('+')
a = int(a.strip())
b = int(b.strip())
print('{} + {} = {}'.format(a, b, a + b))
# 运行结果:
# 请输入内容:3 + 4 
# 3 + 4 = 7

习题8

实现一个整数加法计算器(多个数相加)
如:contert = input('请输出内容') 用户输入:5+ 9+ 6 + 1+ 2 结果:23

content = input('请输入内容:')
temp = content.split('+')
s = 0
for i in temp:
    s += int(i.strip())
print('结果:{}'.format(s))
# 运行结果:
# 请输入内容:1+ 2+ 3 +4
# 结果:10

习题9

计算用户输入的内容中有几个整数
如:content = input('请输入内容:') #ff32fd5fs4fdsf62fd 结果:6

count = 0
num = input('请输入内容:')
for i in num:
    if i.isdigit():
        count += 1
print('个数:{}'.format(count))
# 运行结果:
# 请输入内容:hell4wor84ld34
# 个数:5

习题10

用户可持续输入(while循环) 用户使用情况:
输入A,则显示走大路回家,然后在让用户进一步选择:
是选择公交车,还是步行?
选择公交车,显示10分钟到家,并退出整个程序
选择步行,显示20分钟到家,并退出整个程序
输入B,则显示走小路回家,并退出整个程序
输入C,则显示绕道回家,然后在让用户进一步选择:
是选择游戏厅玩会,还是网吧?
选择游戏厅,则显示‘一个半小时到家,爸爸在家。拿棍棒等你!’并让其重新输入ABC选项
选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备!’并让其重新输入ABC选项

while True:
    choice = input('选择路线A-B-C:')
    if choice.upper() == 'A':
        print('走大路回家!')
        while True:
            walk = input('选择【公交车】:A 或【步行】:B\n请输入:')
            if walk.upper() == 'A':
                print('你选择乘坐【公交车】,将过10分钟到家')
                break
            elif walk.upper() == 'B':
                print('你选择【步行】,将过20分钟到家')
                break
            else:
                print('输入有误!')
        break
    elif choice.upper() == 'B':
        print('走小路回家!')
        break
    elif choice.upper() == 'C':
        print('绕道回家')
        while True:
            walk = input('选择【游戏厅】:A 或【网吧】:B\n请输入:')
            if walk.upper() == 'A':
                print('你选择【游戏厅】,过了1个半小时到家,爸爸在家,拿棍棒等你!')
                break
            elif walk.upper() == 'B':
                print('你选择【网吧】,过了2个半小时到家,妈妈已做好了战斗准备!')
                break
            else:
                print('输入有误!')
    else:
        print('输入错误!')

# 运行路线1
# 选择路线A-B-C:a
# 走大路回家!
# 选择【公交车】:A 或【步行】:B
# 请输入:a
# 你选择乘坐【公交车】,将过10分钟到家

# 运行路线2
# 选择路线A-B-C:a
# 走大路回家!
# 选择【公交车】:A 或【步行】:B
# 请输入:b
# 你选择【步行】,将过20分钟到家

# 运行路线3
# 选择路线A-B-C:b
# 走小路回家!

# 运行路线4
# 选择路线A-B-C:b
# 走小路回家!

# 运行路线5
# 选择路线A-B-C:c
# 绕道回家
# 选择【游戏厅】:A 或【网吧】:B
# 请输入:a
# 你选择【游戏厅】,过了1个半小时到家,爸爸在家,拿棍棒等你!
# 选择路线A-B-C:c
# 绕道回家
# 选择【游戏厅】:A 或【网吧】:B
# 请输入:b
# 你选择【网吧】,过了2个半小时到家,妈妈已做好了战斗准备!
# 选择路线A-B-C:b
# 走小路回家!

习题11

计算1-2+3...+99中除了88以外所有数的总和

s = 0
i = 1
while i <= 99:
    if i == 88:
        i += 1
        continue
    if i % 2 == 0:
        s -= i
    else:
        s += i
    i += 1
print('总和:{}'.format(s))
# 运行结果:
# 总和:138

习题12

判断一句话是否是回文。例如:上海自来水来自海上

words = input('输入一段话:')
new_words = words[::-1]
i = 0
leng = len(words)
while i < leng:
    if words[i] != new_words[i]:
        print('不是回文数!')
        break
    i += 1
else:
    print('{}是回文数'.format(words))
# 运行结果:
# 输入一段话:1234321
# 1234321是回文数
# 输入一段话:123456
# 不是回文数!

习题13

制作趣味模板:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任
意拼写:如 敬爱的可爱呢的XXX,最喜欢在XXX地方干XXX

msg = """美若天仙的{name},
最喜欢在{where},
聆听{nature}的歌声!
"""
name = input('你的名字:')
where = input('想去的地方:')
nature = input('哪里的歌声:')
print(msg.format(name=name, where=where, nature=nature))
# 运行结果:
# 你的名字:露娜
# 想去的地方:王者峡谷
# 哪里的歌声:自然
# 美若天仙的露娜,
# 最喜欢在王者峡谷,
# 聆听自然的歌声!
posted @ 2021-03-31 20:31  缘兮Fate  阅读(394)  评论(0编辑  收藏  举报