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="")