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]) = _______
。
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
print(s1.count('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='你好'
print(s1.encode()) #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]
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 = '这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。'
print(geci.count('朋友'))
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,f:m.replace(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=''
for ch in a:
if ch.isdigit():
digitNumber+=ch
print(digitNumber) #3479
ch_lower=a.lower()
s1=set(ch_lower)
dict_count={}
for ch in s1:
dict_count[ch]=ch_lower.count(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: link1.
参考文章链接2:link2
参考文章链接2:link3