python字符串练习题

python字符串练习题:

1.有变量name = " aleX leNb " 完成如下操作:

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

    name = " aleX leNb "
    s1 = name.strip()
    print(s1)
    
  • 将 name变量对应的值中所有的空格去除掉,并输出处理结果

    name = " aleX leNb "
    s1 = name.replace(' ','')
    print(s1)
    
  • 判断 name 变量是否以 “al” 开头,并输出结果(用两种方式 切片+字符串方法)

    name = " aleX leNb "
    # 切片
    print(name[:2] == "al")
    # 字符串
    s2 = name.startswith("al")
    print(s2)
    

    我们来补充一下startswith和endswith的区别:

    startswith()是Python字符串对象中的一个方法。其基本语法如下:

    str.startswith(prefix[, start[, end]])

    prefix:一个字符串或者字符串元组,表示要检测的前缀。
    start:可选参数,指定从字符串的某个位置开始检查,默认为0。
    end:可选参数,指定检查的结束位置,默认为字符串的长度。
    startswith()方法返回一个布尔值:如果字符串以指定的前缀开始,则返回True;否则返回False。

    基本用法

    示例字符串

    my_string = "Hello, World!"
    
    检查字符串是否以"Hello"开头
    
    print(my_string.startswith("Hello"))  # 输出: True
    
    检查字符串是否以"World"开头
    
    print(my_string.startswith("World"))   # 输出: False
    

    在这个示例中,我们首先定义了一个字符串my_string。接着,我们使用startswith()方法检查字符串是否以"Hello"开头,并得到True的结果。而当我们检查"World"时,结果为False。

    使用可选参数

    示例字符串

    my_string = "Python programming is fun."
    
    检查从第七个字符开始是否以"programming"开头
    
    print(my_string.startswith("programming", 7))  # 输出: True
    
    检查从第七个字符开始是否以"Python"开头
    
    print(my_string.startswith("Python", 7))       # 输出: False
    

    在这个例子中,我们使用了start参数来指定从第七个字符开始检查。可以看到,程序能够准确地识别出从特定位置开始的前缀。

    多前缀检查

    示例字符串

    my_string = "Data analysis is essential."
    
    检查字符串是否以"Data""Data Science"开头
    
    print(my_string.startswith(("Data", "Data Science")))  # 输出: True
    
    检查字符串是否以"Machine Learning""Data Science"开头
    
    print(my_string.startswith(("Machine Learning", "Data Science")))  # 输出: False
    

    在这里,我们传递了一个元组给prefix参数,startswith()能够检查字符串是否以多个前缀中的任意一个开头。这个特性在处理多个可能的前缀时非常有用。

    endswith()

    语法:str.endswith(“suffix”, start, end) 或str[start,end].endswith(“suffix”) 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。

    —> bool 返回值为布尔类型(True,False)

    suffix — 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略,常用于判断文件类型)。
    start —索引字符串的起始位置。
    end — 索引字符串的结束位置。
    str.endswith(suffix) start默认为0,end默认为字符串的长度len(str)

    其他用法和startswith保持一致

  • 判断name变量是否以"Nb"结尾,并输出结果(用两种方式 切片+字符串方法)

    name = " aleX leNb "
    # 切片
    print(name[-2:] == "Nb")
    # 字符串
    s2 = name.endswith("Nb")
    print(s2)
    

    例子:s5=name[-4​:-1:-1]:这里的 step 是 -1,表示从右向左切片。 但是 start 是 -4,stop 是 -1,由于步长为负数,切片的起始索引必须大于结束索引。由于 -4 在 -1 的右侧,所以这个切片会返回一个空字符串 ''。 s5=name[-4​:-1:]:``这里的 step 是默认的 1,表示从左向右切片。 start 是 -4,stop 是 -1,这意味着从倒数第四个字符开始,到倒数第一个字符(不包括)结束。 这样会返回从 name 中的倒数第四个字符到倒数第二个字符的子字符串.

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

    name = " aleX leNb "
    s = name.replace("l","p")
    print(s)
    
  • 将name变量对应的值中的第一个"l"替换成"p",并输出结果

    name = " aleX leNb "
    s = name.replace("l","p",1)
    print(s)
    
  • 将 name 变量对应的值根据 “l” 分割,并输出结果

    name = " aleX leNb "
    s = name.split("l")
    print(s)
    
  • 将 name 变量对应的值全部变大写,并输出结果

    name = " aleX leNb "
    print(name.upper())
    
  • 将 name 变量对应的值全部变小写,并输出结果

    name = " aleX leNb "
    print(name.lower())
    
  • 请输出 name 变量对应的值的第 2 个字符?

    name = " aleX leNb "
    print(name[1])
    
  • 请输出 name 变量对应的值的前 3 个字符?

    name = " aleX leNb "
    print(name[:3])
    
  • 请输出 name 变量对应的值的后 2 个字符?

    name = " aleX leNb "
    print(name[-1:-3:-1])
    

2.有字符s = “123a4b5c”

  • 通过对s切片形成新的字符串 “123”

  • 通过对s切片形成新的字符串 “a4b”

  • 通过对s切片形成字符串s5,s5 = “c”

  • 通过对s切片形成字符串s6,s6 = “2ab”

  • 通过对s切片形成字符串s6,s6 = “cba”

    s = "123a4b5c"
    print(s[-1:2:-2])
    
s="123a4b5c"
print(s[:3])
print(s[3:6:1])
print(s[-1])
print(s[1:6:2])
print(s[-1:-6:-2])

3.使用while循环字符串 s=“你好世界” 中每个元素。

s="你好世界"
count = 0
while count < len(s):
    print(s[count])
    count += 1

4.使用while循环对s="321"进行循环,打印的内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”,“出发!”(提示使用字符串方法中的格式化)

s="321"
count = 0
while count < len(s):
    print("倒计时%s秒" % (s[count]))
    count += 1
print("出发!")
s="321"
i=0
while i<len(s):
    print(f'倒计时{s[i]}秒')
    i=i+1
print("出发!")
s="321"
i=0
while i<len(s):
    print('倒计时{}秒'.format(s[i]))
    i=i+1
print("出发!")

5.使用for循环对s="321"进行循环,打印的内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”,“出发!”(提示使用字符串方法中的格式化)

s="321"
for i in s:
    print("倒计时%s秒" % (i))
print("出发!")

6.实现一个整数加法计算器(两个数相加):

如:content = input(“请输入内容:”) 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算得到结果。(列表也支持索引)

content = input("请输入内容")
content = content.replace(" ","")#先去掉空格
lst = content.split("+")#再以+为分隔符,把代数式分为两部分
print(int(lst[0]) + int(lst[1])

7.计算用户输入的内容中有几个 s 字符?

如:content = input(“请输入内容:”) # 如abcassfsqfsafqsdzacsad

content = input("请输入内容:")
a = content.count("s")
print(a)

# 一开始忘了字符串的这个操作 --- s1 = s.count()  用while循环写的
count = 0
sum = 0
content = input("请输入内容:")
while count < len(content):
    if content[count] == "s":
        sum += 1
    count += 1
print(sum)

8.使用while循环分别正向和反向对字符串 message = “伤情最是晚凉天,憔悴厮人不堪言。” 进行打印。

message = "伤情最是晚凉天,憔悴厮人不堪言。"
# 正向
count = 0
while count < len(message):
    print(message[count])
    count += 1
# 反向
message = "伤情最是晚凉天,憔悴厮人不堪言。"
count = 0
while count < len(message):
    print(message[-1-count])
    count += 1
    
message = "伤情最是晚凉天,憔悴厮人不堪言。"
count = 0
num = -1
while count < len(message):
    print(message[count],message[num])
    # print(message[count],end="")
    num -= 1
    count += 1

9.获取用户输入的内容,并计算前四位"a"出现几次,并输出结果。

content = input("请输入内容:")
s = content[:4].count("a")
print(s)

#  这道题同第七题,后来又看笔记才想到 s1 = s.count()
count = 0
sum = 0
content = input("请输入内容:")
while count < 4:
    if content[count] == "a":
        sum += 1
    count += 1
print(sum)

10.制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx (字符串格式化)

name = input("名字:")
place = input("地点:")
hobby = input("爱好:")
print("敬爱可亲的%s,最喜欢在%s,干%s." % (name,place,hobby))
print(f"敬爱可亲的{name},最喜欢在{place},干{hobby}")
print("敬爱可亲的{},最喜欢在{},干{}".format(name,place,hobby))

11.判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海⾃来⽔来⾃海上

content = input("输入一句话:")
s = content[::-1]
if s == content:
    print("是回文")
else:
    print("不是回文")

12.输⼊⼀个字符串,要求判断在这个字符串中⼤写字⺟,⼩写字⺟,数字,其他各出现了多少次,并输出出来

s = input("请输入一个字符串")
num = 0
upper_str = 0
loewr_str = 0
other = 0
for i in s:
    print(i)
    if i.isdecimal():
        num += 1
    elif i.islower():
        loewr_str += 1
    elif i.isupper():
        upper_str += 1
    else:
        other += 1
print("大写字母出现%s次 小写字母出现%s次 数字出现%s次  其他字符出现%s次" % (upper_str, loewr_str, num, other)

补充:

islower():判断字符串区分大小写的字符是否全为小写

isupper():判断字符串的字符是否全为大写

istitle():判断字符串的所有单词是否首字母(开头)是大写其他为小写

isalpha(): 检查字符串是否只包含字母字符。

isdecimal(): 检查字符串是否只包含十进制数字字符。

isdigit(): 检查字符串是否只包含数字字符(包括Unicode数字)。

isspace(): 检查字符串是否只包含空白字符。

isascii(): 检查字符串中的所有字符是否为ASCII,是则返回True,否则返回False。ASCII字符的代码点在U+000-U+007F范围内,空字符串也是ASCII。

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

while True:
    s = input("请选择A,B,C.")
    if s.upper() == "A":
        s1= input("选择公交还是步行")
        if  s1 == "公交":
            print("10分钟到家")
        elif s1 == "步行":
            print("20分钟到家")
        break
    elif s.upper() == "B":
        print("走小路回家")
        break
    elif s.upper() == "C":
        print("绕道回家")
        s2 = input("选择游戏厅玩会,还是网吧")
        if s2 == "游戏厅":
            print("一个半小时到家,爸爸在家,拿棍等你.")
        elif s2 == "网吧":
            print("两小时到家,妈妈已做好战斗准备.")

你可能感兴趣的:(python例题,python,java,windows)