字符串应用

1. 输⼊⼀个字符串,⾃⼰统计该字符串有多少个字符,不允许⽤len函数
str1 = input("请输入一个字符串:")
count = 0
for i in list(str1):
    count += 1
print(count)
2. 任给⼀个字符串,请验证是否是⼿机号,⼿机号为 11 位数字,开头三位必须
130,151,186
- 使⽤列表存储 130,151,186 ;使⽤ in 判断
- 使⽤切⽚左取 3
str1 = input("请输入一个字符串:")
list1 = ['130', '151', '186']
if str1[:3] in list1 and len(str1) == 11 and str1.isdecimal() is True:
    print(str1, " 是手机号")
else:
    print(str1, " 不是手机号")
3.将字符串’1234567890’转换成‘ 1,234,567,890’输出,每3位⽤逗号隔开。
str1 = '1234567890'
print('{:,}'.format(int(str1)))

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

str1 = input("请输入第一个字符串:")
str2 = input("请输入第二个字符串:")
for i in str2:
    while i in str1:
        str1 = str1.replace(i, '')
print(str1)
5.任意输⼊⼀段⽂字,统计有多少个单词(⽤空格隔开)、多少个数字、多少字⺟、多少空格。
str1 = input("请输入一段文本:")
num, space, char, world = 0, 0, 0, 0
world = len(str1.split(" "))
for i in str1:
    if i.isdecimal():
        num += 1
    elif i.isupper() or i.islower():
        char += 1
    elif i.isspace():
        space += 1
print(f"单词有{world}个,数字有{num}个,字母有{char}个,空格有{space}个")
6. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF", 要求如下:
   a. a 字符串的数字取出,并输出成⼀个新的字符串
a = "aAsmr3idd4bgs7Dlsf9eAF"
for i in a:
    if i.isdecimal():
        print(i, end="")
b. 请统计 a 字符串出现的每个字⺟的出现次数(忽略⼤⼩写, a A 是同⼀个字⺟),并输出成⼀个字典。 例 {'a':4,'b':2}
a = "aAsmr3idd4bgs7Dlsf9eAF"
b = a.lower()
c = {ch: b.count(ch) for ch in b if ch.isalpha()}
print(c)
c. 输出 a 字符串出现频率最⾼的字⺟
a = "aAsmr3idd4bgs7Dlsf9eAF"
b = a.lower()
c = {ch: b.count(ch) for ch in b if ch.isalpha()}
print(c)
for key, value in c.items():
    if value == max(c.values()):
        print(key, "---", value)
d. 请判断 'boy' ⾥出现的每⼀个字⺟,是否都出现在 a 字符串⾥。如果出现,则输出 True ,否则,则输 出 False
a = "aAsmr3idd4bgs7Dlsf9eAF"
str1 = 'boy'
for i in str1:
    if i not in a:
        print("False")
        break
else:
    print("True")

进阶练习


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

str1 = input("请输入字符串,逗号隔开:")
str2 = str1.split(",")
a, b, c = (int(i) for i in str2)
print(a, b, c)
2.求字符串最后⼀个单词的⻓度,单词之间⽤空格分割。
str1 = input("请输入一个字符串:")
*tmp, str2 = str1.split(" ")
print(len(str2))
3.输⼊⼀个字符串,压缩字符串如下aabbbccccd变成a2b3c4d1
str1 = 'aabbccddeeerdf'
d1 = {ch: str1.count(ch) for ch in str1}
for key, value in d1.items():
    print(f"{key}{value}", end="")
 4.给定⼀个句⼦(只包含字⺟和空格),将句⼦中的单词位置反转,单词⽤空 格分割, 单词之间只有⼀个空格,前后没有空格。例如:“hello xiao mi”-> “mi xiao hello”
str1 = "hello xiao mi"
str2 = str1.split(" ")
str2.reverse()
# print(" ".join(str2[::-1]))
print(" ".join(str2))
5.将s = “ajldjlajfdljfddd",去重并从⼩到⼤排序输出"adfjl"
s = "ajldjlajfdljfddd"
a = set(s)
b = list(a)
b.sort()
print("".join(b))
6. 使⽤密码表加密.密码表加密是⼀种⼗分常⽤的密码加密⽅法,加密的原理是根据明⽂和密 码表,加密形成密⽂,根据密⽂和密码表解密,读出明⽂。密码表可以是如下 表所示:
⾃⼰设计密码表,任意输⼊⼀个字符串,然后显示其密⽂。
str1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
        'w', 'x', 'y', 'z', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
str2 = ['q', 'i', 'a', 'n', 'y', 'u', 9, 4, 6, 'b', 'd', 'e', 'f', 'c', 'h', 'g', 'x', 'z', 2, 5, 0, 8, 3, 1, 7, 's',
        'w', 'v', 'r', 't', 'k', 'l', 'o', 'm', 'j', 'p']
password = {key: value for key, value in zip(str1, str2)}
mingWorld = input("请输入要加密的明文:")
for i in mingWorld:
    if i in password:
        print(password[i], end="")
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dmy20210205

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值