阿里云搭建服务器
更新源
12sudo apt-get updatesudo apt-get upgrade
安装nginx
1234sudo apt-get install nginxsudo /etc/init.d/nginx start # (start可以改成restart/stop)# 或是sudo service nginx start# 然后浏览器输入服务器IP,观察是否有welcom to nginx!
安装py3和virtualenv
12sudo apt-get install git python3 python3-pipsudo pip3 install vir ...
网络宽带和网络延迟
网络带宽,网络延迟是2个概念(网络延迟往往更容易被忽略!)
国内大陆 建立在互联网基础上 很多对延迟性要求比较高的应用,体验效果都不如人意。比如高清晰度网络电视、在线视频语音实时业务(qq、skype) 某些在线游戏 等等。
最简单的例子:如果ping某个网站,高于50ms的网站,打开就慢。10-30ms的网站,打开就比较快。
如果都是同一个宽带服务商,即使升级到10M 20M 100M的宽带,这种网络延迟情况,短时间内应该也不会有改善
1、“下载电影这种活儿就看带宽,不在乎服务器发出数据后晚几秒钟收到,传输层有“窗口协议”,不必等到上一段数据的应答再传下一段数据,可以看 ...
素数判别
由于1既不是素数也不是合数,所以下面暂未判断。如果需要则需特判如if (num == 1) return false;
方法一
123456789bool isPrime_2( int num ){ int tmp =sqrt( num); for(int i= 2;i <=tmp; i++) if(num %i== 0) return 0 ; return 1 ;}//一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n)。若sqrt(n) ...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 ...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 ...
提供蓝牙模块API
wx.openBluetoothAdapter(OBJECT)
初始化小程序蓝牙模块
wx.closeBluetoothAdapter(OBJECT)
关闭蓝牙模块,使其进入未初始化状态。
wx.getBluetoothAdapterState(OBJECT)
获取本机蓝牙适配器状态
wx.onBluetoothAdapterStateChange(CALLBACK)
监听蓝牙适配器状态变化事件
wx.startBluetoothDevicesDiscovery(OBJECT)
开始搜寻附近的蓝牙外围设备。注意,该操作比较耗费系统资源,请在搜 ...
小程序开发遇到的坑
function 与 => 的区别
在JS中,箭头函数并不是简单的function(){}匿名函数的简写语法糖,实际上,箭头函数和匿名函数有个明显的区别:**箭头函数内部的this是词法作用域,在编写函数时就已经确定了。**而匿名函数的this指向运行时实际调用该方法的对象,无法在编写函数时确定。
箭头函数和普通函数的区别
不可以当做构造函数,也就是说,不可以使用 new 命令,否则会抛出错误。
this、arguments、caller等对象在函数体内都不存在。
不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。
==& ...
IDE搭建:
下载:微信公众平台官网
预备知识:
个人认为入门小程序相对比较简单,需要了解HTML+CSS 大概知道是干啥的就行,JavaScrip还是要看看的,推荐教程 廖雪峰的博客以及W3Cschool的JS教程
项目目录结构介绍:
小程序中一共有四种类型的文件:
js ---------- JavaScrip文件
json -------- 项目配置文件,负责窗口颜色等等
wxml ------- 类似HTML文件
wxss ------- 类似CSS文件
重要文件-APP讲解:
app.json(必需) :监听并处理小程序的生命周期函数、声明全局变量。
a ...
复制Django项目:
manage.py中需要修改的地方
1os.environ.setdefault("DJANGO_SETTINGS_MODULE", "window.settings")
settings.py中需要修改的地方
12345"""Django settings for window project."""ROOT_URLCONF = 'window.urls'WSGI_APPLICATION = 'window.wsgi.applic ...
\r - \n - \r\n 的区别
代码演示:
123456781: string s1 = "已经习惯了回车和换行一次搞定\n,敲一个回车键,即是回";2: 3: Console.WriteLine(s1);4: s1 = "已经习惯了回车和换行一次搞定\r,敲一个回车键,即是回";5: Console.WriteLine(s1);6: s1 = "已经习惯了回车和换行一次搞定\r\n,敲一个回车键,即是回";7: Con ...
云服务器Ubuntu更改默认python版本
1、基于用户修改 Python 版本:
想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 alias(别名) 即可。打开该用户的 ~/.bashrc文件,添加新的别名信息来修改默认使用的 Python 版本。
vim ~/.bashrc
增加一行alias python=python3和修改pip版本alias pip=pip3
source ~/.bashrc
再输入python --version,就能发现显示的是Python 3.x啦
2、 在系统级修改 Python 版本(建议)
12# updat ...
Spy++ (SPYXX.EXE) 是一个基于 Win32 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息。 查看选定的窗口、线程、进程或消息的属性。
我们可以使用微软的Spy++来查看窗口类名等信息,然后再结合pywin32实现。
加载初始界面:
然后点击工具栏的望远镜。如图所示:
出现搜索窗口,然后通过移动靶心到想要查找句柄的窗口后单击就行了。==>它的句柄、标题、类都会显示
再点击确定。
此时会有两种情况。
成功搜索到
搜索 ...
python中关于round函数的注意事项
round函数很简单,对浮点数进行近似取值,保留几位小数。
比如:
12345>>> round(10.0/3, 2)3.33>>> round(20/7)3#第一个参数是一个浮点数,第二个参数是保留的小数位数,可选,如果不写的话默认保留到整数。
12345678910#[round]函数文档-py3def round(number, ndigits=None): # real signature unknown; restored from __doc__ """ round(number[, ...
Method= POST的操作
在posting.html中的<form>中加入标识符
1234> {% csrf_token %}> <form name='my form' action='.' method='POST'> > {% csrf_token %}>
▲注意action='???'
12345678910在views.posting处理函数中改用RequestContext作为网页显示的内容: from djang ...
Python Web——Django笔记
新建项目: django-admin startproject blog .
创建应用程序(APP):python manage.py startapp fsite
添加app:INSTALLED_APPS=['...']
新建的 app 如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件) .小提示,DEBUG=True 的时候,Django 还可以自动找到 各 app 下 static 文件夹中 ...
apt-get
Advanced Package Tool又名apt-get,是一条linux命令,适用于deb包管理式的操作系统如Unix和Linux系统的应用程序管理器,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
rpm包和deb包是两种Linux系统下最常见的安装包格式,在安装一些软件或服务的时候免不了要和它们打交道。rpm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上,deb包主要应用于Debian系列包括现在比较流行的Ubuntu等发行版上。
我们知道如果要安装现成的这两种包的话,安装rpm包的命令是“rpm -参数”,安装 ...
LeetCode 26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例 1:
12345给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。
示例 2:
12345给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1 ...
HDOJ Problem 1002 - A + B Problem II:
大数定理
Problem Description
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines ...