data

图灵机器人

独自空忆成欢 提交于 2020-03-28 10:19:41
import requests apiUrl = 'http://www.tuling123.com/openapi/api' data = { 'key' : '8edce3ce905a4c1dbb965e6b35c3834d', # 如果这个Tuling Key不能用,那就换一个 'info' : '今天几号', # 这是我们发出去的消息 'userid' : 'wechat-robot', # 这里你想改什么都可以 } # 我们通过如下命令发送一个post请求 r = requests.post(apiUrl, data=data).json() # 让我们打印一下返回的值,看一下我们拿到了什么 print(r) import requests apiUrl = 'http://www.tuling123.com/openapi/api' data = { 'key' : '8edce3ce905a4c1dbb965e6b35c3834d', # 如果这个Tuling Key不能用,那就换一个 'info' : '今天几号', # 这是我们发出去的消息 'userid' : 'wechat-robot', # 这里你想改什么都可以 } # 我们通过如下命令发送一个post请求 r = requests.post(apiUrl, data=data).json() #

Activity启动过程源代码分析

时光毁灭记忆、已成空白 提交于 2020-03-28 07:09:31
事实上写分析源代码文章总会显得非常复杂非常乏味,可是梳理自己看源代码时的一些总结也是一种提高。 这篇博客分析下Activity启动过程源代码,我会尽量说得简单点。 个人的观点是看源代码不能看得太细,否则就会花费非常多时间并不是常难理清整个过程。所以本次分析重在理清activity的一个启动流程。 首先大概总结下activity启动的整个流程。这个过程涉及到Instrumentation,ActivityThread,和ActivityManagerService(AMS)。通过Binder向AMS发请求,AMS内部有一个ActivityStack。它负责栈内的Activity同步,AMS去通过ActivityThread去调用Activity的生命周期方法完毕Activity的启动。 假设对Binder进程间通信不了解可看下 IPC——android进程间通信 先上一张总图,等看完博客能够再回头来看下这图: 一.启动预处理 启动一个activity最经常使用的方法就是 startActivityForResult 或者startActivity。而startActivity也是调用startActivityForResult,所以此次分析入口当然是startActivityForResult。 public void startActivityForResult(Intent

node.js读取文件

☆樱花仙子☆ 提交于 2020-03-28 03:49:27
1.新建test.txt文件,输入中文,保存为utf-8格式 2.新建test.js,引入fs模块,使用fs.readFile(dir,function(err,data){}) ,把输出的内容使用toString() // 引入fs 模块 (file system) var fs = require('fs') // fs 读取文件方法 fs.readFile('路径',function(err,data){}) fs.readFile('./test.txt',function(err,data){ console.log(data.toString()) }) 结果: 来源: https://www.cnblogs.com/luguankun/p/12585495.html

利用php的mcrypt模块加密解密(AES、DES等等)

岁酱吖の 提交于 2020-03-28 02:44:47
php des加密: $cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表 $mode_list = mcrypt_list_modes();//mcrypt支持的加密模式列表 // print_r($cipher_list); // print_r($mode_list); function encrypt($key,$data){ $td = mcrypt_module_open("des", "", "ecb", "");//使用MCRYPT_DES算法,ecb模式 $size = mcrypt_enc_get_iv_size($td); //设置初始向量的大小 $iv = mcrypt_create_iv($size,MCRYPT_RAND); //创建初始向量 $key_size = mcrypt_enc_get_key_size($td); //返回所支持的最大的密钥长度(以字节计算) $salt = ''; $subkey = substr(md5(md5($key).$salt), 0,$key_size);//对key复杂处理,并设置长度 mcrypt_generic_init($td, $subkey, $iv); $endata = mcrypt_generic($td, $data);

小程序多列选择器的使用

狂风中的少年 提交于 2020-03-27 22:15:39
记录是为了更好的成长! 话不多说,直接上代码! 1、页面 <view class="section"> <view class="section__title">多列选择器</view> <picker mode="selector" bindchange="bindPickerChange" value="{{index}}" range="{{array}}" range-key="{{'name'}}"> <view class="picker"> 当前选择:{{array[index].name}} </view> </picker> </view> 2、js Page({ data: { array:[ { name:'请选择类型' } ], index: 0, goods:{ id:1, name:'电视机', type:'家电' } }, onLoad: function (options) { var that = this wx.request({ url: 'http://192.168.0.168:8090/findAllType', success: function (res) { that.setData({ array: that.data.array.concat(res.data) }) if (that.data.goods.type != ''

Golang Channel详解

旧城冷巷雨未停 提交于 2020-03-27 18:07:14
3 月,跳不动了?>>> 感谢参考原文- http://bjbsair.com/2020-03-27/tech-info/7058/ 引言 Goroutine 和 Channel 是 Go 语言并发编程的两大基石。Goroutine 用于执行并发任务,Channel 用于 goroutine 之间的同步、通信。 在Golang的并发哲学里,有一句非常著名的话: Do not communicate by sharing memory; instead, share memory by communicating. 意思是:不要通过共享内存来通信,而要通过通信来实现内存共享,它依赖CSP(Communication Sequence Process) 模型,简称通信顺序进程。 Go提倡使用通信的方法代替共享内存,当一个Goroutine需要和其他Goroutine资源共享时,Channel就会在他们之间架起一座桥梁,并提供确保安全同步的机制。 Channel本质上还是一个队列,遵循FIFO(First In-First Out)原则, 创建通道 创建通道需要用到关键字 make ,格式如下: 通道实例 := make(chan 数据类型) 数据类型:通道内传输的元素类型。 通道实例:通过make创建的通道句柄。 使用通道 通道创建后,就可以使用通道进行发送和接收操作。 写入

第十七节 K-means

喜你入骨 提交于 2020-03-27 16:12:50
sklearn PAI:from sklearn.cluster import KMeans 聚类的原理 评价指标:轮廓系数,一般[-1,1]之间,一般超过0-0.1聚类效果已经十分不错 from sklearn.cluster import KMeans # K-means PAI import pandas as pd from sklearn.decomposition import PCA import matplotlib.pyplot as plt from sklearn.metrics import silhouette_score # 轮廓系数API # 数据地址:https://www.kaggle.com/c/instacart-market-basket-analysis/data # 读取表 prior = pd.read_csv(r"E:\360Downloads\Software\降维案列数据\order_products__prior.csv") products = pd.read_csv(r"E:\360Downloads\Software\降维案列数据\products.csv") order = pd.read_csv(r"E:\360Downloads\Software\降维案列数据\order.csv") aisles = pd.read

Linux安装Mysql

人盡茶涼 提交于 2020-03-27 14:52:37
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 再移动并重命名一下 mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql 创建mysql用户组和用户并修改权限 groupadd mysql useradd -r -g mysql mysql 创建数据目录并赋予权限 mkdir -p /data/mysql #创建目录 chown mysql:mysql -R /data/mysql #赋予权限 配置my.cnf vim /etc/my.cnf 内容如下 [mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0

微信小程序学习笔记(四)音乐播放器(底部播放组件)

家住魔仙堡 提交于 2020-03-27 13:28:17
3 月,跳不动了?>>> 微信小程序学习笔记(四)音乐播放器(底部播放组件) 底部的播放组件,主要有播放控制(上一曲、播放/暂停、下一曲)、播放进度条组成。而这些组件的内容是根据当前播放的歌曲而改变的,因此需要进行动态的绑定。另外,播放与暂停按钮任意时刻只能显示其中一个,其是否显示取决于当前正在播放歌曲的状态,如果暂停,则显示播放,否则显示暂停。所以首先在在musicdemo.js的data中,添加正在播放歌曲的相关数据。 一、musicdemo.js data: { /**当前歌曲播放状态,true正在播放,false暂停 */ isPlay:true, /**当前播放的位置(时间) */ currentTime: 1000, /**当前播放歌曲的总时间 */ totalTime: 6800, /**正播放歌曲信息 */ currentPlayMusic: { musicImage:"/img/list_1.jpg", musicName:"驿动的心", singerName:"姜育恒", musicSrc:"/music/驿动的心.mp3" }, /**页面Tab标签数据 */ tab:0 }, 二、musicdemo.wxml的设计 <!--页面底部播放组件--> <view class="footer"> <!--播放控制--> <view class="current

Vue--$watch()源码分析

♀尐吖头ヾ 提交于 2020-03-27 11:44:27
  这一段时间工作上不是很忙,所以让我有足够的时间来研究一下VueJs还是比较开心的 (只要不加班怎么都开心),说到VueJs总是让人想到双向绑定,MVVM,模块化,等牛逼酷炫的名词,而通过近期的学习我也是发现了Vue一个很神奇的方法$watch,第一次尝试了下,让我十分好奇这是怎么实现的, 为什么变量赋值也会也会触发回调?这背后又有什么奇淫巧技?怀着各种问题,我看到了一位大牛,杨川宝的文章,但是我还是比较愚笨,看了三四遍,依然心存疑惑,最终在杨大牛的GitHub又看了许久,终于有了眉目,本篇末尾,我会给上链接   在正式介绍$watch方法之前,我有必要先介绍一下实现基本的$watch方法所需要的知识点,并简单介绍一下方便理解:     1) Object.defineProperty ( obj, key , option) 方法         这是一个非常神奇的方法,同样也是$watch以及实现双向绑定的关键         总共参数有三个,其中option中包括 set(fn), get(fn), enumerable(boolean), configurable(boolean)         set会在obj的属性被修改的时候触发,而get是在属性被获取的时候触发,( 其实属性的每次赋值,每次取值,都是调用了函数 )     2) Es6 知识,例如Class,()