Python基础练习题(2)
本群的作业没有指定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