python基础·练习1(字符串作业)
python基础·练习1
字符串作业
⼀、填空
1.已知s2 = ‘123’,则:s2 * 3 = ___________; s2 + str(456) = ___________;
s2 ='123'
print(s2 *3)#123123123
print(s2 +str(456))#123456
2.已知s1 = ‘123456789’。则: s1[:3] = ________; s1[-5:] =____________; s1[::2]=______; s1[::-3] =_______; int(s1[3:5]) + int(s1[-5:3:-1]) =_______。
excel乘的公式s1 ='123456789'
print(s1[:3])#123
print(s1[-5:])#56789
print(s1[::2])#13579
print(s1[::-3])#963
print(int(s1[3:5])+int(s1[-5:3:-1]))#50
3.已知s1 = “this is a test of Python”;统计字符串中s出现的次数:____________;取出⼦串”test”的表达式:___________; 获取s1的反序字符串:______________; 将⼦串”test”替换为”exam”:
s1 ='this is a test of Python'
s=0
for i in s1:
if i =='s':
s+=1
print(s)# 3
unt('s'))# 3
print(s1[10:14])
print(s1[::-1])#nohtyP fo tset a si siht
s2 = s1.replace('test','exam')
print(s2)#this is a exam of Python
4.已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下:将a字符串的⼤写改为⼩写,⼩写改为⼤写:__________________;转为⼩写字符串:______________________。
a ="aAsmr3idd4bgs7Dlsf9eAF"
print(a.lower())#aasmr3idd4bgs7dlsf9eaf
print(a.upper())#AASMR3IDD4BGS7DLSF9EAF
5.已知x=“abc”,y=“def”,z=[“d”,“e”,“f”], 则x.join(y)= ________________; x.join(z) =__________________________。
x="abc"
y="def"
z=["d","e","f"]
print(x.join(y))#dabceabcf
print(x.join(z))#dabceabcf
6.把s1=”你好”,编码为字节流字符串:______________________
s1='你好'
de())#b'\xe4\xbd\xa0\xe5\xa5\xbd'
7.已知字符串:s2 = ‘ wh2002 ’,去除s2左边的空格:___________;去除s2右边的空格:____________;去除s2两边的空格:______________;
s2 =' wh2002 '
print(s2.rstrip())# wh2002
print(s2.lstrip())#wh2002
print(s2.strip())#wh2002
8.定义变量s=‘abcde’, 写出下列代码运⾏的结果
s.upper() ________________
s[2::-1] ________________
s.isdigit() ________________
s * 2 ________________
'*'.join(list(s)[:3]) ________________
s='abcde'
print(s.upper())#ABCDE
print(s[2::-1])#cba
print(s.isdigit())#False
print(s *2)#abcdeabcde
print('*'.join(list(s)[:3]))#a*b*c
⼆、编程
初级
1 利⽤列表推导式, 完成以下需求
a. ⽣成⼀个存放1-100中个位数为3的数据列表
结果为 [3, 13, 23, 33, 43, 53, 63, 73, 83, 93]
str1 =[x for x in range(1,100)if x %10==3]mysql免安装版配置教程
print(str1)
b. 利⽤列表推到是将 列表中的整数提取出来
数组内容的值怎么表示例如:[True, 17, "hello", "bye", 98, 34, 21] --- [17, 98, 34, 21]
str1=[True,17,"hello","bye",98,34,21]
str1 =[x for x in str1 if type(x)==int]
print(str1)
c. 利⽤列表推导式 存放指定列表中字符串的长度
例如 ["good", "nice", "see you", "bye"] --- [4, 4, 7, 3]
str1=["good","nice","see you","bye"]
str1 =[len(x)for x in str1]
print(str1)
2 输⼊⼀个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
例如: 输⼊ ‘abcd1234’ 输出 'bd24’
a =input('请输⼊⼀串字符:')
res = a[1::2]
print(res)
3 输⼊字符串,获取字符串的中间字符
例如:输⼊’abc1234’ 输出:‘1’ 输⼊**‘abc123’** 输出**‘c1’**
a =input('请输⼊⼀串字符:')
m=len(a)
p=int(m/2-1)
q =int((m+1)/2-1)
for i in a:
if m %2==0:
res = a[p:p+2]
else:
res = a[q]
print(res)
4 输⼊⼀个字符串,⾃⼰统计该字符串有多少个字符,不允许⽤len函数
s =input('请输⼊⼀串字符:')
count=0
for i in s:
count+=1
print('字符串个数为:',count)
5 输⼊⽤户名,判断⽤户名是否合法,⽤户名的要求:⽤户名中只能由数字或者字母组成
例如: ‘abc’ — 合法 ‘123’ — 合法 ‘abc123a’ — 合法 ‘abc-23’ — 不合法
name =input('请输⼊⽤户名:')
for x in name:
if not('a'<= x <='z'or'A'<= x <='Z'or'0'<= x <='9'):
print('⽤户名不合法!')
break
else:
print('⽤户名合法')
6 输⼊⼀个字符串,判断字符串中有多少个字母?多少个数字?多少个其他符号
例如:'hello, nice to meet you. i am 18. my birthday is 1999-05-23'
-- 结果: 字母的个数为33个,数字个数为10个,其他字符为16个
str=input('请输⼊⼀个字符串:')
s,n,m =0,0,0
for x in str:
if('a'<= x <='z'or'A'<= x <='Z'):
s+=1
elif('0'<= x <='9'):
n+=1
else:
m+=1
print('字母的个数为%d个,数字个数为%d个,其他字符为%d个'%(s,n,m))
7 以下是⼀段歌词,请从这段歌词中统计出朋友出现的次数。
这些年⼀个⼈,风也过,⾬也⾛,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回⾸,终有梦终有你在⼼中。朋友⼀⽣⼀起⾛,那些⽇⼦不再有,⼀句话,⼀辈⼦,⼀⽣情,⼀杯酒。朋友不曾孤单过,⼀声朋友你会懂,还有伤,还有痛,还要⾛,还有我。
geci ='这些年⼀个⼈,风也过,⾬也⾛,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回⾸,终有梦终有你在⼼中。朋友⼀⽣⼀起⾛,那些⽇⼦不再有,⼀句话,⼀辈⼦,⼀⽣情,⼀杯酒。朋友不曾孤单过,⼀声朋友你会懂,还有伤,还有痛,还要⾛,还有我。'
unt('朋友'))
8 编写敏感词过滤程序
说明:在⽹络程序中,如聊天室、聊天软件等,经常需要对⼀些⽤户所提交的聊天内容中的敏感性词语进⾏过滤。如“性”、“⾊情”、“爆炸”、“恐怖”、“”、“军⽕”等,这些都不可以在⽹上进⾏传播,要求输⼊⼀段⽂本,如果包含以上的敏感词汇,需要*替换掉
例如:“性感⼩伙军⽕⾛私原地爆炸” ---- 结果为 "*感⼩伙 **⾛私原地**"
敏感词⼏个字使⽤⼏个*代替
s ='性感⼩伙军⽕⾛私原地爆炸'
stopword =['性','⾊情','爆炸','恐怖','','军⽕']
import re
def sentence_filter(stopword, s):
return re.sub("|".join(stopword),"**", s)
print(sentence_filter(stopword, s))
或者:
from functools import reduce
filter=('性','⾊情','爆炸','恐怖','','军⽕')
msg ='性感⼩伙军⽕⾛私原地爆炸'
res =reduce(lambda m,place(f,'**'),(msg,)+filter)
print(res)
中级
1 随机⽣成长度为5的验证码字符串, 验证码的组成是英⽂字母或者数字
import random
import string
random_str =''.join(random.choice(string.ascii_letters + string.digits)for _ in range(5))
print(random_str)
2 输⼊两个字符串,从第⼀字符串中删除第⼆个字符串中所有的字符
在这⾥插⼊代码⽚
3 求字符串最后⼀个单词的长度,单词之间⽤空格分割。
Str1 =input('Str1: ')
s = Str1.split(' ')
print(len(s[::-1]))
4 输⼊⼀个字符串,压缩字符串如下aabbbccccd变成a2b3c4d1
def yasuo(str1):
list1=list(str1)
len1=len(list1)
for s in list1:
n=0
for i in range(len1):
if(list1[i]==s):
n+=1
list1[i]=' '
if(s==' '):
continue
else:
print(s,n,end='',sep='')
str3=input('输⼊⼀个')
print(yasuo(str3))
5 input函数每次只能输⼊⼀个字符串,请实现如下输⼊格式:1 20 30 。然后将获得的字符串分割,得到:三个整数:1 20 30,然后赋值给三个变量。
a =input("")
b = a.split(" ")
c, d, e =[int(i)for i in b]
print(c, d, e)
6 将s = “ajldjlajfdljfddd",去重并从⼩到⼤排序输出"adfjl"
s ="ajldjlajfdljfddd"
a =list(set(s))
a.sort()
b =" ".join(a)
print(b)
7 已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下:
a.将a字符串的数字取出,并输出成⼀个新的字符串
b.请统计a字符串出现的每个字母的出现次数(忽略⼤⼩写,a与A是同⼀个字母),并输出成⼀个字典。 例 {‘a’:4,‘b’:2}
c.输出a字符串出现频率最⾼的字母
d.请判断 'boy’⾥出现的每⼀个字母,是否都出现在a字符串⾥。如果出现,则输出True,否则,则输 出False
a ="aAsmr3idd4bgs7Dlsf9eAF"
digitNumber=''
uml视图有哪些for ch in a:
cheaperif ch.isdigit():
digitNumber+=ch
print(digitNumber)#3479
ch_lower=a.lower()
s1=set(ch_lower)
dict_count={}
for ch in s1:
dict_count[ch]=unt(ch)
print(dict_count)#{'g': 1, 'r': 1, 'i': 1, 'd': 3, 'f': 2, 'b': 1, 'l': 1, 'a': 3, '3': 1, 'm': 1, '4': 1, '9': 1, 'e': 1, 's': 3, '7': 1}
max_count=max(dict_count.values())
for key in dict_count:
if dict_count[key]==max_count:
print(key,end=' ')
#d a s True
for ch in'boy':
if ch not in a:
print(False)
break
else:
print(True)
#False
参考⽂章链接1: .
参考⽂章链接2:
参考⽂章链接2:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论