当前位置:   article > 正文

python笔记-2020/09/03下午-字符串练习(5)_1.计算字母a在列表s中出现的次数。s=[[a,c,v,d,r],[a,y,u,a,f,e],o,e

1.计算字母a在列表s中出现的次数。s=[[a,c,v,d,r],[a,y,u,a,f,e],o,e,[d,a]]

1.已知字符串:“this is a test of Python

a.统计该字符串中字母s出现的次数
str = "this is a test of Python"
print(str.count("s"))
  • 1
  • 2
b.取出子字符串“test”
print(str.find("test"))
print(str[10:14])
  • 1
  • 2
c.采用不同的方式将字符串倒序输出
方法一
# print(str[::-1])
  • 1
方法二
order = []
for i in str:
  order.append(i)
order.reverse()   #将列表反转
print(''.join(order))    #将list转换成字符串
  • 1
  • 2
  • 3
  • 4
  • 5
d.将其中的 “test” 替换为 “exam”
print(str.replace('test','exam'))
  • 1

2.已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”, 要求如下

a.请将a字符串的大写改为小写,小写改为大写
a = "aAsmr3idd4bgs7Dlsf9eAF"
print(a.swapcase())
  • 1
  • 2
b.请将a字符串的数字取出,并输出成一个新的字符串
import re
print(''.join(re.findall("\d+",a)))
  • 1
  • 2
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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=":")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

&

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/303687
推荐阅读
相关标签
  

闽ICP备14008679号