Day8-字符串

Day8-字符串

作业

【初级】

1. 输⼊一个字符串,自己统计该字符串有多少个字符,不允许用len函数

a = input(“请输入任意字符串:”)
b = list()
j = 0
for i in a:
b.append(i)
j += 1
print(j)

2.任给一个字符串,请验证是否是手机号,手机号为11位数字,开头三位必须是130,151,186
- 使⽤用列列表存储130,151,186;使用in判断
- 使用切⽚左取3位

pnum = input(“请输入任意字符串:”)
s1 = (pnum)
list1 = (130, 151, 186)
s2 = eval(s1[0:3])
if s2 in list1 and s1.isdigit() and len(s1) == 11:
print(“这是一个合法的手机号码。”)
else:
print(“请输入合法的手机号码!”)

3.将字符串’1234567890’转换成‘ 1,234,567,890’输出,每3位⽤用逗号隔开。

a = “1234567890”
a1 = a[-3:]
a2 = a[-6:-3]
a3 = a[-9:-6]
a4 = a[0]
print(",".join([a4, a3, a2, a1]))

4.输⼊两个字符串,从第⼀字符串中删除第二个字符串中所有的字符

info1 = input(“请输入字符串:”)
info2 = input(“请输入想要删除的字符串:”)
list1 = list(info1)
for s in info2:
if s in info1:
list1.remove(s)
print(“删除后的字符串是:”, “”.join(list1)) # join()可以将列表、元组转化成字符串

5.任意输⼊一段文字,统计有多少个单词(用空格隔开)、多少个数字、多少字母、多少空格。

info1 = input(“请输入字符串:”)
words = len(info1.split())
num, alpha, space = 0, 0, 0
for letter in info1:
if letter.isdigit():
num += 1
if letter.isalpha():
alpha += 1
if letter == " ":
space += 1
print(“该字符串有单词%d个,数字%d个, 字母%d个, 空格%d个” % (words, num, alpha, space))

6. 已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下:
a.将a字符串的数字取出,并输出成一个新的字符串
b.请统计a字符串出现的每个字母的出现次数(忽略⼤小写,a与A是同⼀个字母),并输出成一个字典。 例 {‘a’:4,‘b’:2}
c.输出a字符串出现频率最高的字母
d.请判断 'boy’里出现的每⼀个字母,是否都出现在a字符串里。如果出现,则输出True,否则,输出False

a = “aAsmr3idd4bgs7Dlsf9eAF”
listA = []
for x in a:
if x.isdigit():
listA.append(x)
print(",".join(listA))

b = a.lower()
result = {x: b.count(x.lower()) for x in b if not x.isdigit()}
print(result)
for x in b:
if x.isalpha():
print(b.count(x.lower()))
# print({x: b.count(x.lower())})
# else:
# print(x.isdigit())

s1 = result.values()
zg = {x: y for x, y in result.items() if y == max(s1)}
print(zg)

c = “boy”
list = []
for i in c:
if i in a:
list.append(True)
else:
list.append(False)
print(list)

【中级】

1.input函数每次只能输⼊一个字符串串,请实现如下输⼊格式:1,20,30 。然后将获得的字符串分割,得到:三个整数:1 20 30,然后赋值给三个变量。

info = input(“请输入字符串:”)
list1 = info.split(",")
a = list1[0]
b = list1[1]
c = list1[2]
print(a, b, c)

2.求字符串最后一个单词的长度,单词之间用空格分割。

strA = “A bird in the hand is worth two in the bush”
a,*_, b = strA.split(" ") #列表解包,最后一个单词赋给变量b
print(len(b)) # 计算单词长度

strA = “A bird in the hand is worth two in the bush”
listA = strA.split(" ") # 转换成列表
print(len(str(listA[-1]))) # 定位最后一个元素,转换成字符串格式,求字符数

3.输⼊一个字符串,压缩字符串如下aabbbccccd变成a2b3c4d1

strA = input(“请输入字符串:”)
str1 = sorted(strA)
result = {x: str1.count(x) for x in str1 if not x.isdigit()}
for key, value in result.items():
str2 = “%s%s” % (key, value)
print(str2, end = “”)

4.给定⼀个句子(只包含字母和空格),将句子中的单词位置反转,单词⽤用空格分割, 单词之间只有⼀一个空格,前后没有空格。例如:“hello xiao mi”-> “mi xiao hello”

sentence = “A bird in the hand is worth two in the bush”
a = sentence.split(" ")
a.reverse()
c = " ".join(a)
print©

5.将s = “ajldjlajfdljfddd",去重并从⼩到⼤序输出"adfjl"

s = “ajldjlajfdljfddd”
l = list(s)
for ch in s:
while ch in l and l.count(ch) > 1:
l.remove(ch)
l.sort()
result = “”.join(l)
print(result)

6.使⽤用密码表加密
密码表加密是一种⼗分常用的密码加密方法,加密的原理是根据明⽂和密
码表,加密形成密文,根据密文和密码表解密,读出明文。密码表可以是如下表所示:
自⼰设计密码表,任意输⼊入⼀个字符串串,然后显示其密⽂文。运行输⼊如下所示:
密码表内容为:
明⽂文表:abcdefghijklmnopqrstuvwxyz1234567890
密⽂文表:18ac4y7bxuiep23hjs5ofwv0zdl9gkm6nqrt
请输⼊入明⽂文:abcdefghijklmnopqrstuvwxyz1234567890
加密后密⽂文:18ac4y7bxuiep23hjs5ofwv0zdl9gkm6nqrt

t = [“abcdefghijklmnopqrstuvwxyz1234567890”, “18ac4y7bxuiep23hjs5ofwv0zdl9gkm6nqrt”]
s = input(“请输入要加密的字符:”)
result = “”
for ch in s:
if ch in t[0]:
result += t[1][t[0].index(ch)]
print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值