0509---字符串练习题
Posted wenm1128
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0509---字符串练习题相关的知识,希望对你有一定的参考价值。
#6、字符替换
‘‘‘
1)读入一个字符串
2)去掉字符串的前后空格
3)如果字符串包含数字则1替换成a,2替换成b,3替换成c,以此类推
4)将字符串使用空格进行切分,存到一个列表,然后使用*号连接,并输出
5)把这些功能封装到一个函数里面,把执行结果作为返回值
‘‘‘
def replace_str(s): if not isinstance(s,str): return None s=list(s.strip())#strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 print(s) result =[] for i in s: if i.isdigit(): result.append(chr(ord(i)+48)) else: result.append(i) return "*".join(result) s = " 123456789abc " print(replace_str(s))
C:\Users\Administrator>py -3 C:\Users\Administrator\Desktop\测试\python相关\20190423
.py
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘a‘, ‘b‘, ‘c‘]
a*b*c*d*e*f*g*h*i*a*b*c
#7、找出字符串中出现次数最多的字符,并输出其出现的位置
s="I am a good boy!" def max_times_num_str(s): import string for i in s: if i in string.punctuation: s=s.replace(i," ") s=s.split() d={} for i in range(len(s)): for j in range(len(s[i])): if s[i][j] not in d.keys(): d[s[i][j]] =1 else: d[s[i][j]] +=1 max_num=max(d.values()) for k,v in d.items(): if v==max_num: return (k,v) print(max_times_num_str(s))
C:\Users\Administrator>py -3 C:\Users\Administrator\Desktop\测试\python相关\20190423
.py
(‘o‘, 3)
方法2:如果有多个相同的最大值,貌似就找不出来了。
#算法:定义一个出现次数最多的字符的坐标位置为0
2 按坐标遍历后,用count找到出现次数最多的字符,替换坐标位置,然后返回
def find_max(s): max_num_index =0 for i in range(len(s)):
#用坐标取 if s.count(s[i]) >s.count(s[max_num_index]): max_num_index=i return s[max_num_index],max_num_index print(find_max("hewhewkhkewjkwjkjjkjkjk"))
C:\Users\Administrator>py -3 C:\Users\Administrator\Desktop\测试\python相关\20190423
.py
(‘k‘, 6)
#8、找出一段句子中最长的单词及其索引位置,以字典返回字符串的练习题
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
import string def max_length_word(s): s=s.split(" ") d={} for index,i in enumerate(s): print(i)#enumerate输出的是一个索引序列 d[len(i)]=(i,index)#长度作为字典的key,i和index作为一个组赋值给value print(d) return d[max(d.keys())] s=‘I am a good boy‘ print(max_length_word(s))
C:\Users\dell>py -3 C:\Users\dell\Desktop\练习\5\0509.py
I
{1: (‘I‘, 0)}
am
{1: (‘I‘, 0), 2: (‘am‘, 1)}
a
{1: (‘a‘, 2), 2: (‘am‘, 1)}
good
{1: (‘a‘, 2), 2: (‘am‘, 1), 4: (‘good‘, 3)}
boy
{1: (‘a‘, 2), 2: (‘am‘, 1), 4: (‘good‘, 3), 3: (‘boy‘, 4)}
(‘good‘, 3)
对比题:
import re word_str = input("请输入一个英文句子:") def find_max_length(word_str): word = sorted(re.findall(r‘\w+‘,word_str),key=len)[-1] postion = 0 for index in range(len(word_str)): if word_str[index:index+len(word)] == word: postion = index break return word,postion print("句子中最长的单词是%s,索引位置是%d" %(word,postion))
#10、实现字符串的upper、lower以及swapcase方法
#pper() 方法将字符串中的小写字母转为大写字母 s="Hgdj" ‘‘‘ def upper(s): if not isinstance(s,str): return None result ="" for i in s: if i>=‘a‘ and i<=‘z‘: result +=chr(ord(i)-32) else: result +=i return result print(upper(s)) ‘‘‘ #lower() 方法转换字符串中所有大写字符为小写。 ‘‘‘ def lower(s): if not isinstance(s,str): return None result ="" for i in s: if i>=‘A‘ and i<=‘Z‘: result +=chr(ord(i)+32) else: result +=i return result print(lower(s)) ‘‘‘ #swapcase() 方法用于对字符串的大小写字母进行转换。 def swapcase(s): if not isinstance(s,str): return None result ="" for i in s: if i>=‘a‘ and i<=‘z‘: result +=chr(ord(i)-32) else: result +=chr(ord(i)+32) return result print(swapcase(s))
HGDJ
hgdj
hGDJ
>>> print(s.swapcase())
this IS STRING EXAMPLE....WOW!!!
>>> print(info.find(‘a‘)) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
0
>>> print(info.find(‘a‘,1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
3
>>> print(info.find(‘3‘)) # 查找不到返回-1
-1
>>>
#算法:检测字符串中是否包含子字符串,如果存在返回索引值在字符串中的起始位置,如果不包含索引值,返回-1 def find(s,word,num=0): if not isinstance(s,str): return None if word in s: for i in range(len(s)): if s[i:i+len(word)]==word: return i else: return -1 print(find(‘good‘,‘d‘))
print(find(‘is good boy‘,‘boy‘))
C:\Users\dell>py -3 C:\Users\dell\Desktop\练习\5\0509.py
3
8
以上是关于0509---字符串练习题的主要内容,如果未能解决你的问题,请参考以下文章
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段