精华内容
下载资源
问答
  • Python小程序之倒计时

    万次阅读 2020-01-02 10:39:27
    利用当前最流行的编程语言Python,来实现一个案例,最终功能如下图展示: 代码为面向过程来写的,没作优化处理,可以利用Python封装继承多态的特性去进行优化,这里暂时不作展示。 详细代码和注释如下: import ...

    利用当前最流行的编程语言Python,来实现一个小案例,最终功能如下图展示:

    在这里插入图片描述
    在这里插入图片描述

    代码为面向过程来写的,没作优化处理,可以利用Python封装继承多态的特性去进行优化,这里暂时不作展示。

    详细代码和注释如下:

    import time
    
    input_years = 0
    input_month = 0
    input_day = 0
    localtime = time.localtime(time.time())
    leap_years = False
    while True:
        try:
            input_years = int(input("输入年:"))
            input_month = int(input("输入月:"))
            input_day = int(input("输入日:"))
        except:
            print("请输入数字,谢谢!")
            continue
        if input_years < localtime[0]:
            print("请输入大于或等于当前年份")
            continue
        if input_month in [1, 3, 5, 7, 8, 10, 12]:
            if input_day > 31 or input_day < 1:
                print("大月31天")
                continue
            break
        elif input_month in [4, 6, 9, 11]:
            if input_day > 30 or input_day < 1:
                print("小月30天")
                continue
            break
        elif input_month == 2:
            if input_years % 100 == 0 and input_years % 400 == 0:
                if input_day > 29 or input_day < 1:
                    print("闰年2月29天")
                    continue
                break
            elif input_years % 4 == 0 and input_years % 100 != 0:
                if input_day > 29 or input_day < 1:
                    print("闰年2月29天")
                    continue
                break
            elif input_years % 3200 == 0 and input_years % 172800 == 0:
                if input_day > 29 or input_day < 1:
                    print("闰年2月29天")
                    continue
                break
            else:
                if input_day > 28 or input_day < 1:
                    print("平年2月28天")
                    continue
                break
        else:
            print("请输入1至12月,谢谢!")
            continue
    tm_year = localtime[0]
    tm_mon = localtime[1]
    tm_day = localtime[2]
    tm_hour = localtime[3]
    tm_min = localtime[4]
    tm_sec = localtime[5]
    tm_y_day = localtime[7]
    if input_years % 100 == 0 and input_years % 400 == 0:
        leap_years = True
    elif input_years % 4 == 0 and input_years % 100 != 0:
        leap_years = True
    elif input_years % 3200 == 0 and input_years % 172800 == 0:
        leap_years = True
    a = 0
    # 计算输入的年里这一日是这一年的第多少天
    for i in range(1, input_month + 1):
        for j in range(1, 32):
            if input_month == i and input_day == j:
                a += 1
                print(f"这是{input_years}年第{a}天")
                break
            a += 1
            if i in [1, 3, 5, 7, 8, 10, 12]:
                if j >= 31:
                    break
            elif i in [4, 6, 9, 11]:
                if j >= 30:
                    break
            elif i == 2:
                if leap_years:
                    if j >= 29:
                        break
                else:
                    if j >= 28:
                        break
    if input_years == tm_year:  # 查询的年份距离当前年份是同一年
        for d in range(a - tm_y_day - 1, -1, -1):
            Var_Hour = 23 - time.localtime(time.time())[3]
            Var_Min = 59 - time.localtime(time.time())[4]
            Var_Sec = 60 - time.localtime(time.time())[5]
            for i in range(Var_Hour, 0, -1):
                for j in range(Var_Min, 0, -1):
                    for k in range(Var_Sec, 0, -1):
                        print("\r距离%d年%d月%d日还剩%d天%02d小时%02d分钟%02d秒" % (input_years, input_month, input_day, d, i, j, k),
                              end="")
                        time.sleep(1)
                        if k == 1:
                            Var_Sec = 60
                            break
    else:
        if input_years - tm_year == 1:  # 查询的年份距离当前年份大于一整年
            for d in range(365 - tm_y_day + a - 1 if leap_years else 366 - tm_y_day + a - 1, -1, -1):
                Var_Hour = 23 - time.localtime(time.time())[3]
                Var_Min = 59 - time.localtime(time.time())[4]
                Var_Sec = 60 - time.localtime(time.time())[5]
                for i in range(Var_Hour, 0, -1):
                    for j in range(Var_Min, 0, -1):
                        for k in range(Var_Sec, 0, -1):
                            print("\r距离%d年%d月%d日还剩%d天%02d小时%02d分钟%02d秒" % (input_years, input_month, input_day, d, i, j, k),
                                  end="")
                            time.sleep(1)
                            if k == 1:
                                Var_Sec = 60
                                break
        else:
            var_y = tm_year + 1
            y = -1
            # 判断输入的年份至今年中间有多少个闰年,每个闰年加1天
            while var_y <= input_years:
                if var_y % 100 == 0 and var_y % 400 == 0:
                    y += 1
                    var_y += 1
                elif var_y % 4 == 0 and var_y % 100 != 0:
                    y += 1
                    var_y += 1
                elif var_y % 3200 == 0 and var_y % 172800 == 0:
                    y += 1
                    var_y += 1
                var_y += 1
            print(f"{input_years}至{tm_year + 1}年有{y + 1}个闰年")
            y = (input_years - tm_year - 1) * 365 + y
            for d in range(365 - tm_y_day + a + y - 1 if leap_years else 366 - tm_y_day + a + y - 1, -1, -1):
                Var_Hour = 23 - time.localtime(time.time())[3]
                Var_Min = 59 - time.localtime(time.time())[4]
                Var_Sec = 60 - time.localtime(time.time())[5]
                for i in range(Var_Hour, 0, -1):
                    for j in range(Var_Min, 0, -1):
                        for k in range(Var_Sec, 0, -1):
                            print("\r距离%d年%d月%d日还剩%d天%02d小时%02d分钟%02d秒" % (input_years, input_month, input_day, d, i, j, k),
                                  end="")
                            time.sleep(1)
                            if k == 1:
                                Var_Sec = 60
                                break
    
    
    
    展开全文
  • 第一个Python小程序:Zip文件口令破解器 最近在看一本关于Python应用的书,本身也刚接触Python不久,已被py的强大魅力所感染! 下面就不介绍基本的语法了,有兴趣的自行了解吧!这里参照书中代码,实现了...

    第一个Python小程序:Zip文件口令破解器



    最近在看一本关于Python应用的书,本身也刚接触Python不久,已被py的强大魅力所感染! 下面就不介绍基本的语法了,有兴趣的自行了解吧!这里参照书中代码,实现了一个简单的Zip文件口令破解器(大神勿喷),给大家分享一下收获吧~

    什么是Python


        Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

        Python是纯粹的自由软件, 源代码解释器CPython遵循 GPL(GNU General Public License)协议

        Python语法简洁清晰,特色之一是强制用空白符作为语句缩进。

        Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

                                                             ——以上来自某度

    Zip文件口令破解器的原理:简单暴力的理解就是借助于字典文件逐条尝试,直到找到密码,并返回密码。

    可说着简单,要怎么实现呢?我们的Zip文件口令破解器也正是得益于强大的Python库来实现!这里我们主要用到了zipfile库,想进一步了解这个库,只需要打开Python解释器,用help('zipfile')命令即可,如图:


    这里我们着重看一下ZipFile类中的extracall()方法


    我们先创建一个加密的zip文件target.zip,密码为passWord。

    利用zipfile库的extractall()方法解压的用法很简单:


    import zipfile

    zfile = zipfile.ZipFile("target.zip")

    zfile.extractall(pwd="passWord")


    把脚本和压缩文件放在同目录下运行脚本就可以解压了。

    解压成功会发现出来一个和压缩文件同名的文件夹,里面就是被解压出来的东西。但是如果密码不对解压失败呢?我们在脚本中捕捉处理一下,显示一下这个错误的信息:

    # coding: utf-8

    import zipfile

    zfile = zipfile.ZipFile("target.zip")

    try:

    zfile.extractall(pwd="test") # 正确的密码为"passWord"

    except Exception,exc:

    print exc

    结果如图:


    因此,我们可以利用密码不正确是抛出的这个异常信息来判断字典文件中的密码是否为压缩文件target.zip的解压密码。打开字典文件,遍历测试每个密码,如果extractall()执行成功,则打印出密码,程序结束。如果extractall()返回口令错误的异常信息,则忽略此异常,继续测试下一密码。

    下面我们用函数模块化我们的脚本,并且利用多线程同时测试来提高性能:


    import zipfile

    from threading import Thread

    def extractFile(zfile,password):

    try:

    zfile.extractall(pwd=password)

    print 'Found password '+ password +'\n'

    except:

    pass

    def main():

    zfile=zipfile.ZipFile('target.zip')

    passfile=open('dictionary.txt')

    for line in passfile.readlines():

    password = line.strip('\n')

    t = Thread(target=extractFile,args=(zfile,password))

    t.start()

    if __name__ == '__main__':

    main()

    这里我们需要创建一个字典文件,为了测试我就随便建了个txt文档,里面写了些常见的单词(当然包括我们的“密码”)。运行一下,如图:


    效果还可以~当然如果字典里如果没有压缩文件的密码的话,程序结束后,不会打印任何信息。

    但是这样呢总感觉还少点什么,我们能不能自己指定压缩文件和字典文件呢?答案是必须的~

    要做到这点我们还会用到另一个optparse(help('optparse')一下吧~)。

    下面是整个破解器的最终代码:

    import zipfile

    import optparse

    from threading import Thread

    def extractFile(zfile,password):

    try:

    zfile.extractall(pwd=password)

    print ' Found password ' + password + '\n'

    except:

    pass

    def main():

    parser = optparse.OptionParser("usage%prog " + "-f <zipfile> -d <dictionary>")

    parser.add_option('-f',dest='zname',type='string',help='specify zip file')

    parser.add_option('-d',dest='dname',type='string',help='specify dictionary file')

    (options,args) = parser.parse_args()

    if  (options.zname == None ) | (options.dname == None):

    print parser.usage

    exit(0)

    else:

    zname = options.zname

    dname = options.dname

    zfile = zipfile.ZipFile(zname)

    passFile = open(dname)

    for line in passFile.readlines():

    password = line.strip('\n')

    t = Thread(target = extractFile,args = (zfile,password))

    t.start()

    if __name__ == '__main__':

    main()


    怀着鸡冻的心情让我们测试一下最终版,结果如图:



    这里我们用dic.txt字典破解了rookiehacker.zip文件。不管密码多复杂,只要字典够牛就可以,所以有个好字典还是灰常重要滴.................


    好啦!第一个Python小程序完成!!







    展开全文
  • python小程序(2)#输入三个整数,将这三个数由小到大输出 思路: 1.先将a,b两个数做比较,并将较大的放在第一的位置,较小的放在第二的位置。 2.再将c分别与第一的数与第二的数作比较,这里分了三种情况: c最大,将...

    python小程序(2)#输入三个整数,将这三个数由小到大输出
    思路:
    1.先将a,b两个数做比较,并将较大的放在第一的位置,较小的放在第二的位置。
    2.再将c分别与第一的数与第二的数作比较,这里分了三种情况:

    1. c最大,将之前第二大的数放在第三位,之前第一大的数放在第二位,c放在第一位
    2. c比第一位的小,比第二位的大,将之前第二位的数放在第三位,c放在第二位
    3. c最小,c放在第三位,其他不变
    a=int(input('Please input the first number:'))
    b=int(input('Please input the second number:'))
    c=int(input('Please input the second number:'))
    if a>b:
        first=a
        second=b
    else:
         first=b
         second=a
    if first<c:
        third=second
        second=first
        first=c
    elif first>c and c>second:
        third=second
        second=c
    elif c<second:
        third=c
    
    print('first number:',third)
    print('second number:',second)
    print('third number:',first)
    
    展开全文
  • 输入指定日期即可穿越(只能到未来) 请输入目标年月日: 年2018 月9 日5 启动中,还需要 6天1小时55分3秒即可启动
  • Python小程序之猜单词游戏

    千次阅读 多人点赞 2019-01-04 16:26:01
    计算机随机产生一个单词,打乱字母顺序,供玩家去猜。(可供猜的单词自己定义) import random WORDS = ("math","english","china","history"... co...

    计算机随机产生一个单词,打乱字母顺序,供玩家去猜。(可供猜的单词自己定义)

    import random
    WORDS = ("math","english","china","history")
    right = 'Y'
    print("欢迎参加猜单词游戏!")
    
    while right=='Y' or right=='y':
        word=random.choice(WORDS)
        correct=word
        newword = ''
        while word:
            pos=random.randrange(len(word))
            newword+=word[pos]
            #将word单词下标为pos的字母去掉,取pos前面和后面的字母组成新的word
            word = word[:pos]+word[(pos+1):] #保证随机字母出现不会重复
        print("你要猜测的单词为:",newword)
        guess = input("请输入你的答案:")
        count=1
        while count<5:
            if guess!=correct:
                guess = input("输入的单词错误,请重新输入:")
                count+=1
            else :
                print("输入的单词正确,正确单词为:",correct)
                break
        if count == 5:
            print("您已猜错5次,正确的单词为:",correct)
    
        right = input("是否继续,Y/N:")
        
            
    

     

     

     

    展开全文
  • 我们想要用python编程首先要做的就是安装一些东西,之后学会应用。那么问题来了,我们需要安装什么?python又是怎样运行的呢? 安装什么工具? 1、Python 3.6.5(我安装的,还有很多版本) 2、sublime(前期学习用)...
  • yu = Fibonacci_Recursion(top) #生成斐波契那数列 print(yu)
  • Python 小程序 绘制 小蛇

    千次阅读 2017-01-05 17:31:44
    好激动,终于接触到关于图形知识,(^__^*) 嘻嘻……一、程序代码二、程序分析 绘制等边三角形import turtledef drawSnake(): turtle.fd(200) turtle.seth(120) turtle.fd(200) turtle.seth(240) ...
  • Django在网页中调用python小程序

    千次阅读 2018-06-13 22:45:17
    使用django或python的一些web程序的好处就是,可以直接将python中的程序稍作修改直接运用于web页面中,先如何将python的一些小程序运用于web中作一个笔记。程序实现的功能:查找一个大序列中某个序列出现的个数及...
  • Python小程序:判断闰年

    千次阅读 2017-11-19 22:33:35
    def is_leap_year(year): """ 能被4整除且不能被100整除;能被400整除 """ if year % 400 == 0: return True if year % 4 == 0 and year % 100 != 0: return True return False
  • pip install pypiwin32 pip install opencv-python
  • 我们在平时的工作中经常会遇到这样的需求,需要再某个时间点执行一段程序逻辑。 那么,在python中我们是怎么做的呢? 下面看代码: waitDesignatedTimeToRun.py import time, datetime startTime = ...
  • 一个可以套路别人的python小程序~

    万次阅读 2018-03-14 20:18:22
    楼主今天新开通了博客,第一篇文章就先放上今天顺手写的小程序吧。先简要介绍一下程序。程序是使用pycharm工具,python语言所写。程序包括客户端 client.py 和服务器端 server.py 两部分,利用了python中的socket包...
  • Python小程序(7)--模拟掷骰子

    万次阅读 多人点赞 2019-05-14 18:39:56
    • 通过计算机程序模拟抛掷骰子,并显示各点数的出现次数及频率 • 比如,抛掷2个骰子50次,出现点数为7的次数是8,频率是0.16 版本1.0 1.0功能:模拟抛掷1个骰子,并输出其结果 如何通过Python模拟随机事件?...
  • 小白一枚,最近网上比较火的微信“跳一跳”小程序,刷爆了朋友圈,之后怀着好奇心在网上看到有大神自己写了一个python脚本,于是打算借来玩一下,倒腾了半天,各种配置,下面记录一下出现的问题:
  • #LINUX下非交互加入root权限用户和修改密码的python小程序 import os,crypt,sys if len(sys.argv)  print "usage: python %s test11 test11\n" %(sys.argv[0])  sys.exit() #退出程序 www.2ct
  • # 本程序是用python来实现账号登录及注册界面,实现的基本功能如下: # 1.如不登录与注册,则直接进入游客界面 # 2.如选择登录,会自动核对用户名与密码是否正确,如用户名不存在,则选择进入注册界面 # 3.在注册...
  • python小程序添加可执行权限

    千次阅读 2018-05-14 10:24:49
    1.编写好代码,保存为py格式2.在要执行文件的顶部添加解释器路径#! /user/bin/python3 (例子)3.chmod +x 文件名 给文件添加可执行权限4. ./文件名 执行文件...
  • 完整的写一个Python小程序

    万次阅读 2016-12-06 18:01:10
    conExit = ''#退出程序的阀门 while conExit != 'exit': print('Do you want to Continue? yes or no') quitFlag = input() if quitFlag == 'yes': try: print('please enter a number') userInput...
  • Python小程序练习---敏感词测试

    千次阅读 2017-02-09 17:06:57
    小程序需求说明敏感词文本文件 filtered_words.txt,里面的内容为以下内容:北京 程序员 公务员 领导 牛比 牛逼 你娘 你妈 love sex jiangge当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights。思路...
  • Python小程序——凯撒密码加密方式实现

    万次阅读 多人点赞 2015-01-21 16:50:11
    Python编程实现凯撒密码的加密,训练Python中字符串的操作以及对古典密码中凯撒密码的理解。
  • 有时候希望获取一个文本文件的所有内容,但又不希望有打开文件、读文件、关闭文件这些繁琐的步骤,因此需要用一个小程序把这几个步骤封装起来,一句话完成所需要的获取文件内容的操作。为此,这里给出一个示例代码。
  • 第一个Python小程序(Hello World!)

    千次阅读 2017-02-20 16:32:27
    当安装好python时,可以在命令提示符中直接输入 python 就可以进入python自带的编辑器(最好不要使用root用户,因为当你不小心把数据给删了,那可不是一般罪过啊!),如图: 此时就可以在此页面输入如下代码...
  • 1、统计文件中第一个单词出现的次数 方法一:先把所有不重复的首个单词保存为列表,然后用字典的fromkeys方法把字典初始化为键为首单词值为0的字典,最后再循环一次统计单词出现的次数,该方法的算法复杂度较高,如...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 580,898
精华内容 232,359
关键字:

python小程序

python 订阅