Python中for循环相关的几个小练习,生成指定位数的验证码序列,移位加密
Posted wenmo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中for循环相关的几个小练习,生成指定位数的验证码序列,移位加密相关的知识,希望对你有一定的参考价值。
1 # 1.键盘录入的字符串(假设字符串中只包含小写字母和空格)进行加密操作, 2 # 加密的规则是a变d,b变e,c变f,??,x变a,y变b,z变c,空格不变,返回加密后的字符串 3 # 97 98 99 100 x = 120(97) y = 121(98) z = 122(99) 4 5 c_in = input("输入一个字母串:") 6 mi_c = ‘‘ 7 for c in c_in: 8 if 97 <= ord(c) < 120: 9 mi_c += chr(ord(c)+3) 10 elif 120 <= ord(c) <= 122: 11 mi_c += chr(ord(c)-23) 12 else: 13 mi_c += ‘ ‘ 14 print("加密后:",mi_c) 15 16 # 2.键盘录入指定长度生成对应的验证码(由数字和大小写英文字母构成的随机字符串)。 17 #方法一 18 import random 19 yzm = int(input(‘输入验证码位数:‘)) 20 zimu = random.randint(1,yzm) 21 daxie = random.randint(1,zimu) 22 xxie = zimu - daxie 23 shuzi = yzm - zimu 24 str_1 = random.sample(range(0,10),shuzi) #生成数字 25 str_2 = random.sample(range(97,123),xxie) #生成小写字母 26 str_3 = random.sample(range(65,91),daxie) #生成大写字母 27 str_4 = str_2 + str_3 28 str_5 = [] 29 for inn in str_4: 30 str_5.append(chr(inn)) 31 str_6 = str_1 + str_5 32 for inn in str_6: 33 print(inn,end=‘‘) 34 35 #方法二 36 import random 37 yzmlen = int(input(‘输入验证码位数:‘)) 38 sz = list(range(0, 10)) 39 zm = [] 40 zmb = list(range(97, 123)) + list(range(65, 91)) 41 for inn in zmb: 42 zm.append(chr(inn)) 43 mlist = sz + zm 44 yzm = random.sample(mlist, yzmlen) 45 for inn in yzm: 46 print(inn,end=‘‘) 47 48 49 50 # 3.自定义一个列表,最大的与第一个元素交换,最小的与最后一个元素交换,输出列表 51 # 52 lis = [12, 34, 56, 78, 99, 43, 1, 33, 75] 53 max_i = 0 54 min_i = -1 55 for inn in range(1, len(lis)-1): 56 if lis[max_i] < lis[inn]: 57 lis[max_i], lis[inn] = lis[inn], lis[max_i] 58 if lis[min_i] > lis[inn]: 59 lis[min_i], lis[inn] = lis[inn], lis[min_i] 60 print(lis) 61 62 63 #4.自定义一个数字列表,求列表中第二大数的下标 64 65 list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 66 max_index = 0 67 sec_index = 0 68 for index in range(1,len(list1)-1): 69 if list1[index] > list1[max_index]: 70 max_index = index 71 for index in range(1,len(list1)-1): 72 if max_index != index: 73 if list1[index] > list1[sec_index]: 74 sec_index = index 75 else: 76 continue 77 print("列表",list1,"\n其中第二大的元素%d 索引是 %d"%(list1[sec_index],sec_index)) 78 # # 79 # 5.已知有字符串"I wish you prosperity and a better tomorrow I hope you can do better self-improvement efforts” 80 # a. 获取每个字符出现的次数 81 # b. 获取出现次数最少的字符 82 # c. 获取字符串中的每个字符 存放于列表中 但是列表中不允许有重复的字符, 并对列表进行降序排序 83 # 84 str1 = ‘I wish you prosperity and a better tomorrow I hope you can do better self-improvement efforts‘ 85 ch_dic = 86 lis = [] 87 for ch in str1: 88 if ch not in ch_dic: 89 ch_dic[ch] = 1 90 else: 91 ch_dic[ch] += 1 92 if ch not in lis: 93 lis.append(ch) 94 print(ch_dic,lis,sep="\n") 95 96 str_s = None 97 min_ch = min(ch_dic.values()) 98 for k,v in ch_dic.items(): 99 if v == min_ch: 100 str_s = k 101 print("出现最少次数的字符是",str_s) 102 103 lis.sort(reverse=True) 104 print(lis) 105 106 # 6.提取字符串中的数字 进而求和 107 # "i13love14you520" ----> 13 + 14 + 520 = 547 108 109 str = ‘i13love14you520‘ 110 str += ‘end‘ 111 n_sum = 0 112 str1 = ‘‘ 113 lis = [] 114 for i in str: 115 if 48 <= ord(i) <= 57: 116 str1 += i 117 else: 118 if str1 != ‘‘: 119 lis.append(str1) 120 str1 = ‘‘ 121 print(lis) 122 for inn in lis: 123 n_sum += int(inn) 124 print(n_sum )
以上是关于Python中for循环相关的几个小练习,生成指定位数的验证码序列,移位加密的主要内容,如果未能解决你的问题,请参考以下文章