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 )

原文地址:https://www.cnblogs.com/wenmo/p/11272776.html

时间: 2024-10-06 09:24:59

Python中for循环相关的几个小练习,生成指定位数的验证码序列,移位加密的相关文章

Python中使用字典的几个小技巧

1 解包 所谓解包,就是将字典通过 ** 操作符转为 Key=Value 的形式,这种形式可以直接传给函数作为关键字参数. 说说适用的几种情况. 1.1 搜索拼接条件 当应用中使用类似 SQLAlchemy 的 ORM 形式读取数据的时候,不同搜索条件,传入给 ORM 的搜索参数也随之改变. 下面是图书表的部分数据(只展示了部分字段) +----+---------------+-------------------------+-------+ | id | category_name | b

python中循环引用导致内存泄漏小案例

首先定义一个Person类和一个Dog类,然后分别实例化对象p和d,给p对象添加一个pet属性 给d对象添加一个master属性此时Person和Dog的应用计数都为2,当del p 和del d后Person 和Dog的应用计数都为1,就造成了循环引用导致内存不能释放 最终导致内存泄漏. 以下图片是没有循环应用的代码执行结果 以下图片是循环引用后代码执行结果 原文地址:https://www.cnblogs.com/chen55555/p/11079223.html

在 Android studio 中 配置Gradle 做到 “根据命令行提示符生成指定versionCode, versionName,指定apk的打包输出路径”

需求: 1. 使用 Android studio ,使用 gradle 进行构建 2. 在实际开发中,我们需要使用jenkins进行打包.就需要配置我们的 gradle 脚本以支持参数化的方式. 3. 想获得一个可配置打包脚本的方法,允许 配置人员根据需要修改 服务器地址,versionCode, versionName 等 4. 隔离的源代码的配置,使用者在 jenkins里进行配置. 概述: 先展示我配置好的 参数,可以在命令提示行下执行,如下: gradle assembleBeta -P

用python生成指定位数的密码

#!/usr/bin/env python#coding:utf8#随机生成8位.20位.10位密码 import randomimport stringall_chs = string.letters + string.digits def gen_pass(num=8):    pwd = ''#    num = int(raw_input('numer: '))    for i in range(num):        mima = random.choice(all_chs)   

Python中的循环技术

简单谈谈 Python 中容器的遍历和一下小技巧. 1.遍历单个容器 下面代码遍历一个 List 结构,同样适用于 Tuple.Set 结构类型 >>> x = [1, 2, 3, 'p' , 'y'] >>> for v in x: ... print(x) ... 1 2 3 p y 遍历字典 Dict 结构也是一样的方法,注意区分 Key-Value >>> y = {'a':11, 'b':22} >>> y {'b': 22

[转]Python中的str与unicode处理方法

早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章. 我也会在以后学习中,不断的修改此篇博客. 这里假设读者已有与编码相关的基础知识,本文不再再次介绍,包括什么是utf-8,什么是unicode,它们之间有什么关系. str与字节码 首先,我们完全不谈unicode. s = "人生苦短" s是个字符串,它本身存储的就是字节

Python中的str与unicode处理方法

Python中的str与unicode处理方法 2015/03/25 · 基础知识 · 3 评论· Python 分享到:42 原文出处: liuaiqi627 的博客 python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章. 我也会在以后学习中,不断的修改此篇博客. 这里假设读者已有与编码相关的基础知识,本文不再再次介绍,包括什么是utf-8,什么是unicode,它们之间有什么关系. str与字节码 首先,我们完全不谈u

Python中__init__.py文件作用之我见

在Python中每次创建一个package后都会自动生成一个 __init__.py'空文件;该问价的作用是:声明我们当前创建的文件夹(包)是一个**Python模块**,在Python中每一个包中必须有一个__init__ .py文件. 一般这个文件都为空,只有我们在这个包下面创建多个.py文件后,当我们想使用该包下的某一模块,我们则需要在__init__.py文件中通过 __ all__ = [ '模块名'] 指定我们需要导入的模块, Python中导包其实就是导入指定包文件中的__init

python中random模块的使用

import random random.random() 产生0-1间的随机小数 >>> res = random.random() >>> print(res) 0.027542593093386247 >>> res = random.random() >>> print(res) 0.7959514300797362 random.randint(start_num,end_num)  产生指定起终止值中的随机整数,闭合区间