首页 文章 精选 留言 我的

精选列表

搜索[AI功能],共10000篇文章
优秀的个人博客,低调大师

Python零基础学习笔记(八)—— 数学功能

一定要导入math包,不然后面会报错 今日学习部分及执行结果如下图 import math # abs() 返回数的绝对值 a1 = -10 a2 = abs(a1) print(a2) #比较两个数的大小 a3 = 10 a4 = 9 print((a3>a4)-(a3<a4)) # max() 返回参数中的最大值 print(max(1,2,3,4,5)) # min() 返回参数中的最小值 print(min(1,2,3,4,5)) # pow() 求x的y次方 例如2^4 print(pow(2,4)) #round(x[, n]) x为数值,n为保留位数,n可有可无 # 四舍五入 print(round(3.576)) print(round(3.492)) #四舍五入保留位数 print(round(3.576, 1)) print(round(3.492, 2)) # math.ceil() 向上取整 print(math.ceil(8.1)) print(math.ceil(5.9)) # math.floor() 向下取整 print(math.floor(8.1)) print(math.floor(5.9)) # math.modf() 返回整数部分与小数部分 print(math.modf(12.3)) # math.sqrt() 开方 print(math.sqrt(25))

优秀的个人博客,低调大师

阿里云 Aliplayer高级功能介绍(八):安全播放

基本介绍 如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机制保障视频的安全播放: 更多详细内容查看点播内容安全播放,H5的Aliplayer对于上面的安全机制都是支持的,但是也有一些限制。 访问限制 访问限制主要是阿里云视频云提供的安全访问能力, 只需要云端配置, 播放器无需做额外的事情,并且拒绝访问的原因会通过“X-Tengine-Error”Response Header返回,Http请求的错误的Code为403。 开启Referer防盗链后,如果Referer Header的值不是控制台设置的值时,返回“denied by Referer ACL” 错误 Referer首部包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的,还要注意以下两种情况下,Referer不会被发送:

优秀的个人博客,低调大师

Python爬虫(应朋友之邀)-功能实现版

环境:win10 py37 工具:pyCharm anaconda 主要包:BeautifulSoup,re 代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import re from urllib import request from bs4 import BeautifulSoup html = request.urlopen("http://data.eastmoney.com/report/20181101/APPISWTR4upPASearchReport.html") bs = BeautifulSoup(html, "html.parser") print("title") print(bs.title) print("meta") links = bs.find_all("meta") count = 0 for link in links: count = count + 1 print(count) attrs = link.attrs if "name" in attrs.keys(): print("name:", attrs['name']) if "http-equiv" in attrs.keys(): print("httpEquiv:", attrs['http-equiv']) if "content" in attrs.keys(): print("content:", attrs['content']) print("p") ps = bs.find_all("p") index = -1 for p in ps: contents = p.contents if len(contents) > 0: content = contents[0] if str(content).__contains__("盈利预测"): index = ps.index(p) break needContent = "" if index != -1: index = index + 2 needContent = str(ps[index]) print(needContent) match1 = re.search(r'[\u4e00-\u9fa5]{4}20[0-9]{2}[\u4e00-\u9fa5]-20[0-9]{2}[\u4e00-\u9fa5]', needContent) match2 = re.search(r'EPS为.*元', needContent) match3 = re.search(r'([\u4e00-\u9fa5]{4}“).*”[\u4e00-\u9fa5]{2}', needContent) print(match1.group()) print(match2.group()) print(match3.group())

优秀的个人博客,低调大师

【对话科技】Flink技术介绍和新功能展望

2017年6月22号,由“京城学堂”和阿里巴巴集团技术发展部主办的“对话科技”系列讲座邀请到了Apache Flink项目的PMC成员,来自德国DataArtisans公司的Till Rohrmann,在北京阿里中心为关注实时计算技术的阿里同学做了一场关于Apache Flink技术发展的精彩分享。这个讲座同时也在阿里内外同步进行了直播,有上千位同学参与观看和互动。 一、讲者简介 Till Rohrmann来自于德国,本科和硕士分别毕业于慕尼黑工业大学和柏林工业大学。其是Flink创始团队的核心人员,目前是Apache Flink项目的Committer和PMC成员,同时也是Flink母公司DataArtisans的技术Leader。 二、相关背景 Flink是新一代的分布式实时计算系统,并于2015年1月成为Apache顶级项目。相比

优秀的个人博客,低调大师

Flink SQL 功能解密系列 -- Aysnc I/O

背景 Async I/O 是阿里巴巴贡献给社区的一个呼声非常高的特性,于1.2版本引入。主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。 流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。通常,我们的实现方式是向数据库发送用户a的查询请求,然后等待结果返回,在这之前,我们无法发送用户b的查询请求。这是一种同步访问的模式,如下图左边所示。 图中棕色的长条表示等待时间,可以发现网络等待时间极大地阻碍了吞吐和延迟。为了解决同步访问的问题,异步模式可以并发地处理多个请求和回复。也就是说,你可以连续地向数据库发送用户a、b、c等的请求,与此同时,哪个请求的回复先返回了就处理哪个回复,从而连续的请求之间不需要阻塞等待,如上图右边所示。这也正是 Async I/O 的实现原理。 Async I/O 使用

优秀的个人博客,低调大师

Android开发实践:WIFI连接功能的封装

与WIFI扫描类似,WIFI的连接同样是一个耗时的过程,所以需要放到线程中执行,通过回调来通知调用者连接结果。该回调接口的定义如下: 1 2 3 public interface WifiConnectListener{ public void OnWifiConnectCompleted( boolean isConnected); } 从Android的WIFI Setting可以看出,一般添加一个新的WIFI连接,需要给出三个信息,一个是WIFI的SSID,一个是WIFI的密码,另一个是WIFI的加密类型,不同的加密方式,连接时程序中的配置是不同的,这里定义一个枚举,给出四种常见的加密类型: 1 2 3 public enum SecurityMode{ OPEN,WEP,WPA,WPA2 } Android的WIFI连接过程,总体上分为三步,第一步,添加网络配置,第二步,根据网络配置连接WIFI,第三步,监听系统的WIFI连接状态消息。下面就直接给出示例代码,关键的地方都在代码中注释了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 package com.example.testwifi; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; public class WifiConnector{ private static final int WIFI_CONNECT_TIMEOUT= 20 ; //连接WIFI的超时时间 private ContextmContext; private WifiManagermWifiManager; private LockmLock; private ConditionmCondition; private WiFiConncetReceivermWifiConnectReceiver; private WifiConnectListenermWifiConnectListener; private boolean mIsConnnected= false ; private int mNetworkID=- 1 ; //网络加密模式 public enum SecurityMode{ OPEN,WEP,WPA,WPA2 } //通知连接结果的监听接口 public interface WifiConnectListener{ public void OnWifiConnectCompleted( boolean isConnected); } public WifiConnector(Contextcontext,WifiConnectListenerlistener){ mContext=context; mLock= new ReentrantLock(); mCondition=mLock.newCondition(); mWifiManager=(WifiManager)mContext.getSystemService(Context.WIFI_SERVICE); mWifiConnectReceiver= new WiFiConncetReceiver(); mWifiConnectListener=listener; } public void connect( final Stringssid, final Stringpassword, final SecurityModemode){ new Thread( new Runnable(){ @Override public void run(){ //如果WIFI没有打开,则打开WIFI if (!mWifiManager.isWifiEnabled()){ mWifiManager.setWifiEnabled( true ); } //注册连接结果监听对象 mContext.registerReceiver(mWifiConnectReceiver, new IntentFilter(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)); //连接指定SSID if (!onConnect(ssid,password,mode)){ mWifiConnectListener.OnWifiConnectCompleted( false ); } else { mWifiConnectListener.OnWifiConnectCompleted( true ); } //删除注册的监听类对象 mContext.unregisterReceiver(mWifiConnectReceiver); } }).start(); } protected boolean onConnect(Stringssid,Stringpassword,SecurityModemode){ //添加新的网络配置 WifiConfigurationcfg= new WifiConfiguration(); cfg.SSID= "\"" +ssid+ "\"" ; if (password!= null &&! "" .equals(password)){ //这里比较关键,如果是WEP加密方式的网络,密码需要放到cfg.wepKeys[0]里面 if (mode==SecurityMode.WEP){ cfg.wepKeys[ 0 ]= "\"" +password+ "\"" ; cfg.wepTxKeyIndex= 0 ; } else { cfg.preSharedKey= "\"" +password+ "\"" ; } } cfg.status=WifiConfiguration.Status.ENABLED; //添加网络配置 mNetworkID=mWifiManager.addNetwork(cfg); mLock.lock(); mIsConnnected= false ; //连接该网络 if (!mWifiManager.enableNetwork(mNetworkID, true )){ mLock.unlock(); return false ; } try { //等待连接结果 mCondition.await(WIFI_CONNECT_TIMEOUT,TimeUnit.SECONDS); } catch (InterruptedExceptione){ e.printStackTrace(); } mLock.unlock(); return mIsConnnected; } //监听系统的WIFI连接消息 protected class WiFiConncetReceiver extends BroadcastReceiver{ @Override public void onReceive(Contextcontext,Intentintent){ if (!WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(intent.getAction())){ return ; } mLock.lock(); WifiInfoinfo=mWifiManager.getConnectionInfo(); if (info.getNetworkId()==mNetworkID&&info.getSupplicantState()==SupplicantState.COMPLETED){ mIsConnnected= true ; mCondition.signalAll(); } mLock.unlock(); } } } 与WIFI扫描的封装代码类似,这里也用到了Lock和Condition,就是为了阻塞地等待WIFI连接的结果,保证正确的registerReceiver和unregisterReceiver网络连接状态监听对象,同时,设置了WIFI连接超时,防止由于WIFI模块的问题导致界面收不到回调而长时间“卡死”。 另外,AndroidManifest.xml文件中记得添加权限支持哦: 1 2 3 <uses-permissionandroid:name= "android.permission.CHANGE_WIFI_STATE" ></uses-permission> <uses-permissionandroid:name= "android.permission.ACCESS_WIFI_STATE" ></uses-permission> <uses-permissionandroid:name= "android.permission.ACCESS_NETWORK_STATE" ></uses-permission> 本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/1410080,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册