我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python类(class)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python类(class)

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理想的情况是一个程序只有一个主程序,然后在程序里实例化类

练习代码如下:

# coding: utf-8
__author__ = 'www.py3study.com'
import os
import platform
import itertools
import time

class makepassowrd(object):
    def __init__(self):
        self.rawlist = []
        self.denylist = ['', ' ', '@']
        self.pwlist = []
        self.minlen = 6
        self.maxlen = 16
        self.timeout = 3
        self.flag = 0
        self.run = {
            '0': exit,
            '1': self.getrawlist,
            '2': self.adddenylist,
            '3': self.clearrawlist,
            '4': self.setrawlist,
            '5': self.modifypasswordlen,
            '6': self.createpasswordlist,
            '7': self.showpassword,
            '8': self.createpasswordfile
        }
        self.main()

    def main(self):
        while True:
            self.mainMenu()
            op = input(u'输入选项:')
            if op in map(str, range(len(self.run))):
                self.run.get(op)()
            else:
                self.tipMainMenuInputError()
                continue

    def mainMenu(self):
        self.clear()
        print(u'||')
        print(u'='*40)
        print(u'||')
        print(u'|| 0:退出程序')
        print(u'|| 1:输入密码原始字符')
        print(u'|| 2:添加非法字符到列表')
        print(u'|| 3:清空原始密码列表')
        print(u'|| 4:整理原始密码列表')
        print(u'|| 5:改变默认密码长度({}-{})'.format(self.minlen, self.maxlen))
        print(u'|| 6:创建密码列表')
        print(u'|| 7:显示所有密码')
        print(u'|| 8:创建字典文件')
        print(u'||')
        print(u'=' * 40)
        print(u'||')
        print(u'当前非法字符为: {}'.format(self.denylist))
        print(u'当前原始密码元素为: {}'.format(self.rawlist))
        print(u'共有密码{}个'.format(len(self.pwlist)))
        if self.flag:
            print(u'已在当前目录创建密码文件dict.txt')
        else:
            print(u'尚未创建密码文件')

    def clear(self):
        OS = platform.system()
        if (OS == u'Windows'):
            os.system('cls')
        else:
            os.system('clear')

    def tipMainMenuInputError(self):
        self.clear()
        print(u'只能输入0-7的整数,等待{}秒后重新输入'.format(self.timeout))
        time.sleep(self.timeout)

    def getrawlist(self):
        self.clear()
        print(u'输入回车后直接退出')
        print(u'当前原始密码列表为:{}'.format(self.rawlist))
        st = None
        while not st == '':
            st = input("请输入密码元素字符串:")
            if st in self.denylist:
                print(u'这个字符串是预先设定的非法字符串')
                continue
            else:
                self.rawlist.append(st)
                self.clear()
                print(u'输入回车后直接退出')
                print(u'当前原始密码列表为:{}'.format(self.rawlist))

    def adddenylist(self):
        self.clear()
        print(u'输入回车后直接退出')
        print(u'当前非法字符为:{}'.format(self.denylist))
        st = None
        while not st == '':
            st = input(u'请输入需要添加的非法字符串:')
            self.denylist.append(st)
            self.clear()
            print(u'输入回车后直接退出')
            print(u'当前非法字符串为:{}'.format(self.denylist))

    def clearrawlist(self):
        self.rawlist = []

    def setrawlist(self):
        a = set(self.rawlist)
        b = set(self.denylist)
        self.rawlist = []
        for str in set(a - b):
            self.rawlist.append(str)

    def modifypasswordlen(self):
        self.clear()
        while True:
            print(u'当前密码长度为{}-{}'.format(self.minlen, self.maxlen))
            min = input('请输入密码最小长度:')
            max = input('请输入密码最大长度:')
            try:
                self.minlen = int(min)
                self.maxlen = int(max)
            except ValueError:
                print('密码长度只能输入数字[6-18]')
                break
            if self.minlen not in range(6,19) or self.maxlen not in range(6,19):
                print('密码长度只能输入数字[6-18]')
                self.minlen = 6
                self.maxlen = 16
                continue
            if self.minlen == self.maxlen:
                res = input(u'确定将密码长度设定为{}吗?(Yy/Nn):'.format(self.minlen))
                if res not in list('YyNn'):
                    print(u'输入错误,请重新输入')
                    continue
                elif res in list('Yy'):
                    print(u'好吧,你确定就好')
                    break
                else:
                    print(u'给个机会改一下吧')
                    continue
            elif self.minlen > self.maxlen:
                print(u'最小长度比最大长度还大,可能吗?请重新输入')
                self.minlen = 6
                self.maxlen = 16
                continue
            else:
                print(u'设置完毕,等待{}秒后回主菜单'.format(self.timeout))
                time.sleep(self.timeout)
                break

    def createpasswordlist(self):
        titlelist = []
        swapcaselist = []
        for st in self.rawlist:
            swapcaselist.append(st.swapcase())
            titlelist.append(st.title())
        sub1 = []
        sub2 = []
        for st in set(self.rawlist + titlelist + swapcaselist):
            sub1.append(st)
        for i in range(2, len(sub1) + 1):
            sub2 += list(itertools.permutations(sub1, i))
        for tup in sub2:
            PW = ''
            for subPW in tup:
                PW += subPW
            if len(PW) in range(self.minlen, self.maxlen + 1):
                self.pwlist.append(PW)
            else:
                pass

    def showpassword(self):
        for i in range(len(self.pwlist)):
            if i % 4 == 0:
                print("%s\n" % self.pwlist[i])
            else:
                print("%s\t" % self.pwlist[i])
        print('\n')
        print(u'等待{}秒,回到主菜单'.format(self.timeout))
        time.sleep(self.timeout)

    def createpasswordfile(self):
        print(u'当前目录下创建字典文件:dict.txt')
        time.sleep(self.timeout)
        with open('dict.txt', 'w+') as fp:
            for pw in self.pwlist:
                fp.write(pw)
                fp.write('\n')
        self.flag = 1

if __name__ == '__main__':
    mp = makepassowrd()

应该看到的结果blob.png

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python类(class)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python类(class)

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理想的情况是一个程序只有一个主程序,然后在程序里实例化类练习代码如下:#codin
2023-01-30

python Class(类) and

Python类与面向对象    程序=指令+数据 (或算法+数据结构)。代码可以选择以指令为核心或以数据为核心进行编写。    两种类型        (1)以指令为核心:围绕“正在发生什么”进行编写(面向过程编程:程序具有一系列线性步骤;
2023-01-31

python Class:获取对象类型

获取对象类型:一、type#!/usr/bin/env python3# -*- coding: utf-8 -*-class Animal(object):    def __init__(self, name, score):     
2023-01-31

python中class类怎么使用

在Python中,我们可以使用class关键字来定义一个类。类是一种抽象的数据类型,用来定义对象的属性(成员变量)和行为(方法)。下面是一个简单的示例,展示了如何定义一个名为Person的类:```pythonclass Person:#
2023-09-14

Python中Class类用法实例分析

本文实例讲述了Python中Class类用法。分享给大家供大家参考,具体如下: 尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦。因此我们关注Pyth
2022-06-04

python之class类和方法怎么使用

本篇内容主要讲解“python之class类和方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python之class类和方法怎么使用”吧!类和方法的概念和实例类(Class):用来描
2023-07-05

python class Object

一:为什么要使用python的类对象编程?    我的理解:     1:便于维护、扩展代码。     2:更易于重复使用代码。二:python 类对象编程代码如下:#创建firstClass类class firstClass:    i=
2023-01-31

python中怎么利用class类实现可迭代

今天就跟大家聊聊有关python中怎么利用class类实现可迭代,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 当定义一个普通的类时,指向类的实例默认情况下是不可迭代的,如下In
2023-06-01

python class用法

创建一个名为 Restaurant 的类,其方法 __init__() 设置两个属性:name 和 type 1、创建一个名为 describe_restaurant() 的方法,前者打印前述两项信息2、创建一个名为 open_restau
2023-01-30

TypeScript的class类怎么用

本篇内容介绍了“TypeScript的class类怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!class 类类是面向对象语言的程序设
2023-06-29

java中Class类是什么

java中Class类是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明Class本身也是一个类。Class对象只能由系统确定。JVM中只有一个Cla
2023-06-15

JavaScript中的class类详解

JavaScript 中的类(Class)是一种新的语言特性,它让我们可以使用面向对象编程的思想来更加方便地组织和管理代码。在本文中,我们将详细介绍 JavaScript 中的类特性,感兴趣的同学可以借鉴阅读
2023-05-19

Java的Class类和Object类如何使用

这篇文章主要介绍“Java的Class类和Object类如何使用”,在日常操作中,相信很多人在Java的Class类和Object类如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Class类
2023-06-02

java中Class类有什么用

java中Class类有什么用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明Class本身也是一个类。Class对象只能由系统确定。JVM中只有一个Class实例可以加
2023-06-15

class类是不是es6语法

本文小编为大家详细介绍“class类是不是es6语法”,内容详细,步骤清晰,细节处理妥当,希望这篇“class类是不是es6语法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。class类是es6语法,是es6新增
2023-07-04

ES6的Class类怎么使用

本篇内容介绍了“ES6的Class类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在ES6中,class (类)作为对象的模板被引入
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录