欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python基础练习题(2)

程序员文章站 2022-03-16 08:53:31
...

本群的作业没有指定Python方向,而在于提升群内成员的语言功底,本群热烈欢迎任何程度的Python学习者。

群号:651707058

1.凯撒密码的加密方法是:每当你想要加密一段文字时,你需要选择一个移位值 S,它是一个0到25之间的整数。然后,你把文字中的每一个字母用S个位置之后的字母替换(假设S=1,那么A就用B替换)。如果位置超过了Z,那么就要从A开始继续数。

例如:密文: Ifsf up tubz 移位值s=25

输出的明文为:Here to stay

程序要求输入一段明文后,再输入一个移位值,输出相应的凯撒密码

def password(string,s):
    new_str=''
    for i in string:
        if ord(i)>=ord('a') and ord(i)<=ord('z'):
            num=ord(i)+s
            if num>ord('z'):
                num=num-26
            new_str=new_str+chr(num)
        else:
            num=ord(i)+s
            if num>ord('Z'):
                num=num-26
            new_str=new_str+chr(num)
    return new_str
if __name__=='__main__':
    print(password('Ifsf',25))

2.统计一段话中出现最多次数的单词,单词一样,大小写不同视为同一个单词

输出出现次数最多的单词的时候,将其变成小写输出

例如:Here is a line like sparkling wine Line up fast or be the last.

输出:line

string='Here is a line like sparkling wine Line up fast or be the last'
list1=list()
list2=list()
a=string.lower()
list1=a.split()
num=list1.count(list1[0])
string=list1[0]
for i in range(len(list1)):
    if list1.count(list1[i])>num:
        string=list1[i]
print(string)

3.要求生成一个4位验证码,每一位都有可能是数字、大写字母、小写字母,当生成一个验证码后

程序提示输入验证码。用户输入后,程序可以判断输入的验证码的正误,其中验证码验证不分

字母大小写。

例如:生成的验证码为:X8p7 请输入验证码:x8P7 输出:验证成功

例如:生成的验证码为:X8p7 请输入验证码:x8L7 输出:验证失败

import random
#生成四位随机验证码
def alp_num():
    list1=list()
    string=''
    for i in range(26):
        key=chr(65+i)
        list1.extend([key,key.lower()])
    list1.extend([str(x) for x in range(10)])
    random.shuffle(list1) #打乱下顺序,更随机
    for j in range(4):
        string=string+random.choice(list1)
    return string
#验证输入验证码与系统产生验证码是否相同
def make_sure(string):
    print('----验证码:{0}----'.format(string))
    my_string=input('请输入验证码:')
    stirng1=change_alp(my_string)
    stirng2=change_alp(string)
    if stirng1==stirng2:
        print('验证成功!')
        return True
    else:
        print('验证失败!')
        return False
#函数功能:将验证码中的字母变成小写,数字不变
def change_alp(string):
    str1=''
    for i in string:
        if i.isalpha():
            a=i.lower()
            str1=str1+a
        else:
            str1=str1+i
    return str1
if __name__=='__main__':
    while True:
        string=alp_num()
        end=make_sure(string) #接收make_sure函数返回值
        if end:#如果验证正确,跳出循环 
            break

4.

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]    输出: "fl"

示例 2:

输入: ["dog","racecar","car"]   输出: ""

def longestCommonPrefix(str_list):

param str_list:传入的是元素为字符串的列表

return: 最长公共前缀

def longestCommonPrefix(str_list):
    list1=[]
    list3=[]
    my_string=''
    for i in str_list: #求出列表中字符串元素的最小长度
        list1.append(len(i))
    min_length=min(list1)
    for m in range(min_length): #生成这样的列表[['f','f'.'f'],['l','l','l'],['o','o','i'],['w','w','g']]
        list2=[]
        for n in range(len(str_list)):
            list2.append(str_list[n][m])
        list3.append(list2)
    if list3[0].count(list3[0][0])!=len(list3[0]):#判断列表的第一个元素是不是全相同
        my_string='""'
        return my_string
    else:
        for i in range(len(list3)):
            if list3[i].count(list3[i][0])==len(list3[i]):
                my_string=my_string+list3[i][0]
            else:  #如果遇到不全相同的元素就结束
                break
        return my_string
if __name__=='__main__':
    string=["flower","flow","floght"]
    print(longestCommonPrefix(string))

 

 

上一篇: c++const关键字小节

下一篇: const