Python帮助万千程序员远离猝死悲剧

ctypes调用windll实现按键控制 Python通过ctypes调用windll.user32,实现鼠标移动和键盘输入的示例程序 立即下载
猝死引发的讨论

11月27日在《追我吧》第九期节目的录制过程中,当期参与嘉宾高以翔奔跑时突然减速倒地,节目现场医护人员第一时间展开救治,并紧急将其送往医院。经过两个多小时的全力抢救,医院最终宣布高以翔心源性猝死。

此不幸事件发生后,得到了社会各界密切关注。从影迷的惋惜,到对节目组的声讨,以及各种死因分析报道,网上新闻铺天盖地。然而,如果论猝死率最高的职业,不该是我们程序员吗?

猝死高危职业

每年因加班猝死的程序员数以万计,但请问社会同仁是否对我们如此重视过,国家又可曾出台过相关的政策来保护这类高危人群? 都没有!!!

很累的时候,有人关心你,安慰你,是你的幸运。
如果幸运没有降临到你头上,你要学会用自己的左手温暖自己的右手,
你要告诉自己,一切都会过去的。

既然他人不关心程序员,我们只能学会自我关怀了。今天我们就用Python来帮助万千程序员远离猝死!

久坐伤身

记得小米手环第一代发售的时候,就出了久坐提醒这个功能。“久坐”对人身的危害,早被世界所公认。具体有哪些呢?久坐会危害你的结肠、腰椎、颈部、心脏、胰腺、臀部、腿部。至于具体内容,大家可以下来仔细看看。
如此多的危害摆在面前,程序员们却经常因为赶需求、改BUG、查资料而一坐就是几个小时,不到尿憋不挪窝。(就在我写这篇文章的时候,已经在电脑边连续坐了三个小时了...)详细想想,你们是否也有过这些经历!
那么,今天我们用Python开发一个久坐提醒小工具,让每个程序员都能合理休息,定时起身走动走动,远离猝死危害!

程序设计

Python该如何完成久坐提醒这个功能呢?起初考虑定时发邮件、或者微信消息、短信等操作。但专注起来那里有时间关心这些?最后想想,不如开发一个GUI工具,允许程序员设置倒计时,然后到时见电脑自动锁屏,强迫大家起来走走,放松放松。所以有了如下的效果:


5847426-f506d30a7341eb82.gif
效果展示

为了时间设置的范围全面,我添加了支持小数的方式,也是为了能方便录屏演示。
但是为了避免突如其来的锁屏,导致大家不适。所以会在锁屏前10秒给出弹窗提示。这样不至于太过突兀。可这个思路却引发了问题。
tkinter的message会阻塞进程,用户不点击取消掉消息窗口,就无法继续执行。为了能使弹出提示消息的同时,继续倒计时读秒,我们需要引入threading和Toplevel的模块,创建一个子窗口,并等待3秒后销毁它。

def notice():
    message = Toplevel(root)
    message.title('提示')
    Label(message, text='主人,工作这么久了,准备休息下吧!'
          , justify=CENTER, font=("黑体", '11')).grid()
    time.sleep(3)
    message.destroy()
自动锁屏

熟悉bat脚本的童鞋都知道,bat中有shutdown 的命令,可以用来定时重启、关机,但却没有锁屏。查了很久没有结果,最终无奈只能通过pythonctypes模块调用windll,完成锁屏操作了,具体代码如下:

def close_windows():
    user32 = windll.LoadLibrary('user32.dll')
    user32.LockWorkStation()
全量代码与使用
# -*- coding: utf-8 -*-
# @Author   : 王翔
# @微信号   : King_Uranus
# @公众号    : 清风Python
# @GitHub   : https://github.com/BreezePython
# @Date     : 2019/11/28 23:23
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : CareForCoders.py

from tkinter import *
from tkinter.messagebox import showwarning, showinfo
import time
from ctypes import *
import threading


# tkinter GUI工具居中展示
def center_window(master, width, height):
    screenwidth = master.winfo_screenwidth()
    screenheight = master.winfo_screenheight()
    size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2,
                            (screenheight - height) / 2)
    master.geometry(size)


# 锁定屏幕
def close_windows():
    user32 = windll.LoadLibrary('user32.dll')
    user32.LockWorkStation()


class CareForCoders:
    def user_setting(self):
        note = LabelFrame(root, text="说明", padx=10, pady=10,
                          fg="red", font=("黑体", '11'))
        note.grid(padx=10, pady=2, sticky=NSEW)
        index = Label(note, text='程序猿/媛们,久坐伤身请务必定时休息!')
        index.grid()
        lb = LabelFrame(root, text="定时设置(支持小数)", padx=10,
                        pady=10, fg="red", font=("黑体", '11'))
        lb.grid(padx=10, pady=2, sticky=NSEW)
        self.time_entry = Entry(lb)
        self.time_entry.grid(row=1, column=0)
        unit = Label(lb, text="(单位:分)")
        unit.grid(row=1, column=1, padx=5)

        self.countdown_lb = Label(text="休息倒计时:", justify=LEFT,
                                  font=("黑体", '11'))
        self.countdown_lb.grid(row=2)
        self.submit = Button(root, text="启动", width=8,
                             command=lambda: self.get_countdown(self.time_entry.get())
                             )
        self.submit.grid(row=3, column=0, pady=10)

    def get_countdown(self, countdown):
        try:
            _float_countdown = float(countdown)
            if _float_countdown <= 0:
                showwarning("提示:", message="倒计时必须为正数!")
            else:
                self.countdown_show(_float_countdown * 60)
        except ValueError:
            showwarning("提示:", message="请填写正确的倒计时!")

    def countdown_show(self, countdown_sec):
        self.time_entry.config(state=DISABLED)
        self.submit.config(state=DISABLED)
        time.sleep(1)
        self.countdown_lb.config(text="休息倒计时: %02d:%02d" %
                                      (countdown_sec // 60, countdown_sec % 60))
        root.update()
        # 为了避免突如其来的锁屏,倒计时30秒给出提示...
        if countdown_sec == 10:
            t = threading.Thread(target=self.notice)
            t.start()

        if countdown_sec < 1:
            # 启动锁屏操作
            close_windows()
            self.time_entry.config(state=NORMAL)
            self.submit.config(state=NORMAL)
            self.countdown_lb.config(text="欢迎主人回来...")
            root.update()
            return
        countdown_sec -= 1
        self.countdown_lb.after(1000, self.countdown_show(countdown_sec))

    @staticmethod
    def notice():
        # message = Toplevel(root)
        # message.title('提示')
        # Label(message, text='主人,工作这么久了,准备休息下吧!'
        #       , justify=CENTER, font=("黑体", '11')).grid()
        # time.sleep(3)
        # message.destroy()
        showinfo("提示",message='主人,工作这么久了,准备休息下吧!')


if __name__ == '__main__':
    root = Tk()
    center_window(root, 260, 200)
    root.resizable(width=False, height=False)
    root.title('久坐提醒 by:清风Python')
    Main = CareForCoders()
    Main.user_setting()
    root.mainloop()

大家可以去我的github下载所有文章代码:
https://github.com/BreezePython

既然我们要造福万千程序员,那么当然最好可以打包成exe工具,便于脱离环境传播了!
使用命令pyinstaller -F -w -i love.ico CareForCoders.py进行打包
-F 打包成单个文件,-w 取消cmd窗口 -i 添加软件的ico图标,来看看效果吧

5847426-b9c05da96dd33f9c.gif
打包效果

如果大家喜欢,公众号内回复关键字:锁屏,即可获取代码及打包好的exe工具。快把这个暖心的小工具,分享给你身边的朋友们吧!

往期精彩回顾

将安卓手机打造成你的python全栈开发利器

寒冬袭来,带你使用Flask开发一款天气查询软件吧

Python开发GUI,图片转换素描画工具

程序员的自我救赎,使用python开发性格分析工具

使用python假装黑客,批量破解朋友的网站密码

Python爬虫实战:如何优雅地处理BOSS直聘的反爬机制与Cookie失效问题 本文详细介绍了如何通过Python爬虫技术优雅应对BOSS直聘的反爬机制与Cookie失效问题。从多账号轮换、动态请求头生成到代理IP管理,提供了一套完整的解决方案,帮助开发者构建稳定高效的数据采集系统,有效提升爬虫成功率与数据质量。 阅读详情

相关推荐

Vivado 2023.1及更早版本永久License全功能解锁:HLS、System Generator等IP核使用详解

本文深入解析Vivado 2023.1及更早版本的全功能许可证,详细指导如何解锁HLS、System Generator等高级IP核。通过许可证类型对比、功能验证方法和实战应用指南,帮助FPGA开发者充分利用Vivado工具套件,提升复杂系统设计和算法加速的效率。

weixin_31286719的博客 379

简单演示python 如何使用Windows动态链接库文件user32.dll

注意一点 由于C语言编写的是传值调用 所以使用结构是必须采取参数为引用传递 这样函数才能修改参数的#值 这里给一个获取当前鼠标位置的函数调用。#而且维护也很好 别人也容易阅读 如何你使用程序转换C语言为python语言 遵循原则的其他人些的程序。#很容易转换为python可用的形式 这和微软定义一致 目的增加通用性 我们遵循该原则可读性高。#如果我们不采用参数的引用传递 得到只是传值调用 结果和初始化时一样 python对数值类型默认。#我们同样很快转换为python语法。

pengg123h的博客 1332

Ubuntu下OpenOCD+GDB的安装、编译及使用

目标开发板(芯片):stm32mp157aaa 仿真器:ST-Link 操作系统:Ubuntu 18.04 调试软件:OpenOCD OpenOCD的安装 首先下载OpenOCD有多种方式,可以GitHub上下载,目录下打开终端,输入 git clone git://git.code.sf.net/p/openocd/code openocd 下载完整的OpenOCD的文件夹。进入到OpenOCD的目录下,开始安装。 接着,OpenOCD适用于微处理器的debug和烧写,需要下载相关库 sud

蓝冰露的博客 9525

c++巩固基础语法1(哈希表、保留小数点后位数、e的指数次方exp(x)、绝对值abs(x)、三角函数或者三角形相关题、转义字符、正负数进制转换%d,%o,%x)

文章目录1两点距离(保留两位小数、平方、开方)2.三角函数(定义pi,#define pi 3.1415926)3.指数计算(pow(a,b))4.三角形面积(s=a*b*sin(c)/2,c如果是角度需*pi/180)5.求误差(绝对值abs(x),e的指数,exp(x))6.四舍五入(保留小数位数)7.输出奇异符号(字符串中含有引号或斜杠时需转义)8.十六进制转十进制(哈希表)9.十进制正负数转八进制十六进制(%dx,八%0,十六%x)10按序求表达式和(找规律、仔细看题) 1两点距离(保留两位小数、平

weixin_44575911的博客 1011

华为2288H V5服务器断电后‘趴窝’?别慌,手把手教你用SmartKit+BMC修复工具搞定

本文详细介绍了华为2288H V5服务器在断电后无法启动的修复方法,通过SmartKit和BMC修复工具进行故障诊断与修复。文章提供了从工具获取、安装到具体修复流程的完整指南,帮助运维人员快速恢复服务器运行,并给出了后续加固与预防措施,确保服务器稳定运行。

weixin_30575517的博客 297

NC65增加自定义参照并且参照数据要根据选择的财务组织过滤

1、首先定义一个参照类 package nc.pub.jzcm.ref; import nc.ui.bd.ref.AbstractRefModel; import nc.ui.bd.ref.IRefDocEdit; import nc.ui.bd.ref.IRefMaintenanceHandler; public class PMPrPayDefaultRefModel extends AbstractRefModel { public PMPrPayDefaultRefModel(){ ...

xyl的博客 3494

关于Python user32.dll SetWindowPos调用无效的问题的解决方案

将SetWindowPos的第二个值改为常量HWND_TOP可以解决问题

weixin_46222411的博客 1604

unity中VideoPlayer播放视频,使用Shader除去黑底且无黑边

1. 创建一个Shader 和 一个 材质球;Shader中复制如下代码:(此Shader代码为“ChromaKeyKit”插件中的ChromaKey_Alpa_Genera代码,但因只需要除去视频黑底而挂一个插件有点不合适) // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "ChromaKeyKit/ChromaKey/ChromaKey_Alpha_General"

weixin_42065078的博客 1747

汇编变种后缀的应用场景

CSAPP 第3章 mov命令. b,w,l,q以及零拓展符号拓展等后缀的应用场景

球球的博客 3027

项目安全等保测评加固手册

安全等级测评的目的是通过对目标系统在安全技术及管理方面的测评,对目标系统的安全技术状态及安全管理状况做出初步判断,给出目标系统在安全技术及安全管理方面与其相应安全等级保护要求之间的差距。测评结论作为委托方进一步完善系统安全策略及安全技术防护措施依据!!

菜鸟运维升级之路 2416

一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码

本文详细介绍了如何将STM32程序从Keil迁移到国产免费工具Trae,并利用AI进行代码修改的全过程。

水滴爬呀爬 4886

python的危害_Python帮助万千程序员远离猝死悲剧

猝死引发的讨论11月27日在《追我吧》第九期节目的录制过程中,当期参与嘉宾高以翔奔跑时突然减速倒地,节目现场医护人员第一时间展开救治,并紧急将其送往医院。经过两个多小时的全力抢救,医院最终宣布高以翔心源性猝死。此不幸事件发生后,得到了社会各界密切关注。从影迷的惋惜,到对节目组的声讨,以及各种死因分析报道,网上新闻铺天盖地。然而,如果论猝死率最高的职业,不该是我们程序员吗?猝死高危职业每年因加班猝死...

weixin_39929715的博客 324

【AI应用实战-WorkBuddy】WorkBuddy 能帮你做什么(一)

文章摘要: WorkBuddy是一款AI工作助手,专为提升效率而设计,适用于经常处理文档、代码、数据分析等重复性任务的职场人士。它能通过自然语言交互快速完成五大核心场景任务: 周报撰写:输入工作要点,10分钟生成专业周报; 代码调试:解析报错信息,3分钟提供解决方案; Excel分析:自动计算数据趋势并生成图表和结论; 自动化脚本:将重复流程转为脚本,节省98%时间; 文档生成:根据代码自动补充README、API文档和注释。 效果对比:传统手动操作耗时1-3小时的任务,WorkBuddy可将时间缩短至10

351

python 倒计时_用Python帮你远离猝死悲剧

高以翔事件11月27日在《追我吧》第九期节目的录制过程中,当期参与嘉宾高以翔奔跑时突然减速倒地,节目现场医护人员第一时间展开救治,并紧急将其送往医院。经过两个多小时的全力抢救,医院最终宣布高以翔心源性猝死。此不幸事件发生后,得到了社会各界密切关注。从影迷的惋惜,到对节目组的声讨,以及各种死因分析报道,网上新闻铺天盖地。然而,如果论猝死率最高的职业,不该是我们程序员吗?猝死高危职业每年因加...

weixin_39643255的博客 124

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python 倒计时_远离猝死悲剧,Python 来帮你

高以翔事件11 月 27 日在《追我吧》第九期节目的录制过程中,当期参与嘉宾高以翔奔跑时突然减速倒地,节目现场医护人员第一时间展开救治,并紧急将其送往医院。经过两个多小时的全力抢救,医院最终宣布高以翔心源性猝死。此不幸事件发生后,得到了社会各界密切关注。从影迷的惋惜,到对节目组的声讨,以及各种死因分析报道,网上新闻铺天盖地。然而,如果论猝死率最高的职业,不该是我们程序员吗?猝死高危职业...

weixin_39940770的博客 72

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

《深入理解计算机系统》 练习题3.2-3.5 汇编相关

汇编命令总结 1)%eax,%dx就是寄存器的名字 2)(%rax)。只要是有括号的了,那就是内存引用。注意x86-64中的内存引用总是用四字长寄存器给出的,即寄存器名字开头都是r开头的。(%rax)意思是取寄存器%rax中的存的地址中的存的值,相当于解引用两次,先解引用寄存器,再解引用这地址(我用“解引用”这个词只是为了方便理解)。 3)mov命令中,两个操作数只允许有一个内存引用,即只能有一个...

anlian523的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python弹框一之ctypes.windll.user32

ctypes是Python内建的用于调用动态链接库函数的功能模块,此处用ctypes调用user32的messagebox实现弹框。 >>> import ctypes >>> ctypes.windll.user32.MessageBoxA(0,'python 你好!','弹框',0) 1 >>> msg = ctypes.w...

Gordennizaicunzai的博客 5127

医院WIFI哪家强?利用Python脚本无限恶搞女友电脑

Python 无限恶搞朋友电脑,别提有多爽了,哈哈,打造自己的壁纸修改器,电脑无限锁屏, 无线弹窗,都在这里!!! 修改电脑桌面壁纸 工具使用 开发环境:python3.7, Windows10 使用工具包:win32api,win32con, win32gui, os, random win32的工具下载命令: pip install pywin32 项目解析思路 桌面数据信息是保存在注册表上的内容,数据保存在第二项 的Control Panel\Desktop子项里就可以了。 ..

Python_kele的博客 769

Python 开发一个间谍小程序!编程语言中的无间道!

这次我们使用 Python 来打造一款间谍程序,程序中会用到许多知识点,大致分为四块: win32API Python基础,重点在cpytes库的使用 C语言基础 Hook 程序的基本原理在于通过注册Hook,记录系统事件。 那么什么是Hook呢? Hook 技术又叫做钩子函数,系统在调用函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的...

爬遍所有网站 431

C语言标准格式输出函数printf中“%d,%o,%x,%u,%e,%f,%c,%s,%p”等的含义

目录 1、标准格式化输出:格式字符有d,o,x,u,c,s,f,e,g等。 2、输出指定长度 3、scanf(控制字符,地址列表) 1、标准格式化输出:格式字符有d,o,x,u,c,s,f,e,g等。 格式说明:由“%”和格式字符组成,如%d%f等。 它的作用是将输出的数据转换为指定的格式输出。格式输出总是由“%”字符开始的。不同类型的数据用不同的格式字符。 %d有符号整型...

Robben.Han 2万+

汇编语言---80386寄存器,GCC内联汇编语法

8个32-bit寄存器:%eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp; 8个16-bit寄存器:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp; 8个8-bit寄存器:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl;它们事实是寄存器%ax,%bx,%cx,%dx的高8bit和低8bit 6个段寄存器:%cs(code),%ds(data),%ss(stack),%es(extend),%fs, %gs; 3个控制寄存器:%cr0,%c

u013416923的博客 2078

C语言中常见的%d,%c,%s,%x各代表什么

%d,%c,%s,%x是程序汇编语言中的格式符,它们的含义: 1、%d表示按整型数据的实际长度输出数据。 2、%c用来输出一个字符。 3、%s用来输出一个字符串。 4、%x表示以十六进制数形式输出整数 扩展资料 %d,%c,%s,%x等格式字符的格式为〔标志〕〔输出最少宽度〕〔.精度〕〔长度〕类型 如: “%-md” :左对齐,若m比实际少时,按实际输出。 “%m.ns”:输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n。 “%m.nf”:输出浮点数,m为宽度,n为小数点右边数

weixin_44875041的博客 2万+

面向对象编程(二)

面向对象编程(oop) 实例方法 1、实例方法:指的是只有实例对象才可以调用的方法 在类对象中定义实例方法时,第一个形参表示调用该方法的实例对象,其对应的实参由系统自动传入。第一个形参的名称通常是self,也可以是其它名称。 实例方法只能被实例对象所调用,有两种调用方式: 1、在类对象的内部(其它实例方法中) 语法格式:self.方法名([实参]) 2、在类对象的外部 语法格式:实例对象.方法名(...

qq_43799507的博客 296

c中%d等%x(x代表某字母)的理解

测试一下

weixin_73833411的博客 446

在IronPython中调用WinAPI (以User32.dll为例)

用IronPython调用WinAPI来操作GUI

M_Culture的博客 923
上一篇: Python的小数据存储,用什么格式更有逼格?
下一篇: Python爬虫帮你自建无版权图片素材库!
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值