1.已知字符串:“this is a test of Python”
a.统计该字符串中字母s出现的次数
str = "this is a test of Python"
print(str.count("s"))
b.取出子字符串“test”
print(str.find("test"))
print(str[10:14])
c.采用不同的方式将字符串倒序输出
方法一
# print(str[::-1])
方法二
order = []
for i in str:
order.append(i)
order.reverse() #将列表反转
print(''.join(order)) #将list转换成字符串
d.将其中的 “test” 替换为 “exam”
print(str.replace('test','exam'))
2.已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”, 要求如下
a.请将a字符串的大写改为小写,小写改为大写
a = "aAsmr3idd4bgs7Dlsf9eAF"
print(a.swapcase())
b.请将a字符串的数字取出,并输出成一个新的字符串
import re
print(''.join(re.findall("\d+",a)))
c.请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典。
例{‘a’: 4, ‘b’: 2}
a = a.lower()
n = {}
for x in a:
if x.isdigit():
continue
if x in n:
n[x] = n[x] + 1
else:
n[x] = 1
print(n)
d.输出a字符串出现频率最高的字母
import collections
a = "aAsmr3idd4bgs7Dlsf9eAF"
# 统计字符出现的次数
result_dict = collections.Counter(a)
# 转为列表选出最大的值
result_list = list(result_dict.values())
max_value = max(result_list)
# 定义一个最大值的列表(可能会出现多个字母都相同频率)
max_list = list()
# 遍历排序后的把键和值存到列表里
for k,v in result_dict.items():
if v == max_value:
max_list.append(k)
# 重新对最大的值排序并打印
max_list = sorted(max_list)
for paremeter in max_list:
print(paremeter,max_value)
e.请判断’boy’ 里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False
a = "aAsmr3idd4bgs7Dlsf9eAF" #字符串
a = list(set(a.lower())) #先把大小写统一,再去重
flag =0 #循环条件
for s in "boy": #设置遍历查询对象
for ai in a:
if s == ai: #如果匹配到一次,flag加一
flag+=1
if flag == 3: #当三个字母全找到时,flag=3
print(True)
else:
print(False)
3. 提取字符串中的数字进行相加求出最后的和 例如:love12double34single34over - --> 12 + 34 + 34 = 80
import re
str = input("请输入字符串:")
num = re.findall(r"\d+\.?\d*", str)
sum1 = 0
for i in num:
sum1+=float(i)
print(sum1)
4. 统计一个字符串中出现频率最高的字符(单个符号)及其出现次数
str = input("请输入一个字符串:")
n = {}
for x in str:
if x in n:
n[x] = n[x] + 1
else:
n[x] = 1
# print(n)
# print(max(n,key=n.get))
# print(max(str,key=str.count))
print(list(n.keys())[list(n.values()).index(max(n.values()))],max(n.values()),sep=":")
5.定义函数实现如下要求
例如:输入2,5,则求2+22+222+2222+22222的和
def num():
a= int(input("请输入一个整数:"))
n= input("请输入几个数相加:")
s=0
m=0
if n.isdigit(): #判断输入的n是不是数字
n = int(n)
for i in range(n):
m=m+(10**i)*a #求每个单独的数字是多少
s=s+m #把所得的数字累加到一起
print(s)
else:
print("输入错误")
num()
6.设计一个函数,对传入的字符串(假设字符串中只包含小写字母和空格)进行加密操作,加密的规则是a变d,b变e,c变f,……,x变a,y变b,z变c,空格不变,返回加密后的字符串
97 98 99 100 x = 120(97) y = 121(98) z = 122(99) (选择)
str1 = input("请输入字符串:")
def enc(str1):
len1 = len(str1)
list1 = list(str1)
for i in range(len1):
s = ord(list1[i])
if (97 <= s <= 120):
s += 3
print(chr(s), end="")
elif (s == 120):
print("a", end="")
elif (s == 122):
print("c", end="")
else:
print(chr(s), end="")
enc(str1)
7.设计一个函数,根据指定长度生成对应的验证码(由数字和大小写英文字母构成的随机字符串)。
import random
def veri(n):
x = 0
while(x<n):
s=random.choice(range(1,4))
if(s==1):
a=random.choice(range(1,10))
print(a,end='')
x += 1
if(s==2):
b=random.choice(range(65,90))
print(chr(b),end='')
x+=1
if(s==3):
c=random.choice(range(97,122))
print(chr(c),end='')
x+=1
n=int(input('输入验证码长度(位数):'))
veri(n)
&
import random
def makeCode(length = 4):
str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
code = ""
i = 0
while i < length:
code += str[random.randint(0,len(str)-1)]
i+=1
return code
c = makeCode()
print("生成的随机验证码为:",c)
8.功能:比较两个数的大小 如果前者>后者 返回1 返回-1 两者相同 返回0
功能调用:键盘录入两个数 前者<后者
def contrast():
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
if num1 > num2:
print("1")
elif num1 < num2:
print("-1")
elif num1 == num2:
print("0")
contrast()
9.封装一个功能:验证某个数是否为质数
质数的概念:只能被1或者本身整除的数据称之为质数(或者素数)
def prime():
num1 = int(input("请输入一个正整数:"))
if num1 < 2:
print("%d不是质数!"%num1)
else:
for i in range(2,num1):
if num1 % i == 0:
print("%d不是质数!"%num1)
break
else:
print("%d是质数!"%num1)
prime()