字符串作业题
1、最后一个单词的长度
"""
给定一个仅包含大小写字母和空格的字符串,返回其最后一个单词的长度
如果不存在最后一个单词,返回0
实例: 输入 : “hello world”
输出 : 5
"""
string = input("请输入仅包含大小写字母和空格的字符串:") #例如 输入 ‘hello python’
if string == ' ' or not string: # 如果输入为空或者只有空格,就是不存在最后一个单词
print(0)
else:
item_string = string.split(' ') # 以 空格 将字符串分割
#print(item_string) #['hello', 'python']
print (len(item_string[::-1][0])) #先将列表反转['python', 'hello'],再统计第一个元素的长度
运行结果:
一开始写的时候错误使用了len(), 一直写的len.() 大概是没睡醒。。。。。
2、删除重复的字符
"""
输入:输入一个字符串s,s的长度 1 <= length <= 1000,s中的每个字符都是小写英文字母
输出:去掉重复的字母
实例:
输入: banana
输出: ban
"""
while True:
s = input("请输入字符串:")
if s == 'exit':
exit(0)
#判断字符串是否符合要求:1 <= length <= 1000,s中的每个字符都是小写英文字母
if 1 <= len(s) <= 1000 and s.islower():
#去掉重复字母
new_s = s[0] # 首先将第一个字母放到new_s
for item in s[1:]:
if item not in new_s:
new_s += item # 依次遍历剩下的s,如果找到不在new_s中的字母,就把它加到new_s中。
# 某个字母已经在new_s中,就不把它放进去了,也就是相当于把它删除了
print(new_s)
else:
print("输入的字符串不符合要求")
运行结果:
一开始的思路是两层循环
i = 1
for item in s:
for item1 in s[i:]:
if item == item1:
del item1
i += 1
print(s)
找到相同的元素就del,后来才发现,字符串是不可变的呀,怎么能执行删除呢,根本没有这个操作好吧,不管咋样,输出的s还是一开始的s呀,我可能把它和c混一起了。。。。。
3、桌面数字混合排序
"""
输入一个字符串包含数字0~9和字母a~z
要求按数字从小到大,字母从a到z排序,并且所有数字排在字母后面
"""
string = input("请输入字符串:")
s = ''
s1 = ''
if string.isalnum(): #判断是不是字母或者数字
for item in string:
if item.isalpha(): #判断他是不是字母
s += item
if item.isdigit(): #判断他是不是数字
s1 += item #到这里,把字母和数字分别分成了两个字符串 s 和 s1
li_s = list(s) #排序的话,想到sort()方法 ,但是只有列表有这个内置方法,将他转换成列表
li_s1 = list(s1)
li_s.sort() #进行排序
li_s1.sort()
item_s = li_s + li_s1 #将两个列表合并到一起
result = ''.join(item_s) #将列表转换成字符串,也就是拼接起来
print(result)
else:
print("输入字符串不符合要求")
运行结果:
写了好长,不知道是不是想的太复杂了。。。。。。
版权声明:本文为qq_41645466原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。