- Python 字符串前缀详解
Python提供了多种字符串前缀,用于改变字符串的创建方式和行为。下面我将全面汇总并详细解释每种字符串前缀的特性、用途和示例。1.原始字符串(RawString)-r前缀语法:r'...'或r"..."作用:禁用字符串中的转义字符反斜杠\被视为普通字符特别适合处理包含大量反斜杠的字符串适用场景:文件路径(特别是Windows路径)正则表达式需要保留反斜杠的任何情况示例:#普通字符串中的转义path
- Python中的条件语句:if-else使用指南
AI软件改变生活
Python数据库前端python
在编程中,条件语句是控制程序流程的核心工具之一,它允许程序根据不同的条件执行不同的代码块。Python提供了简洁而强大的条件语句语法,其中最常用的就是if-else语句。本文将详细介绍Python中if-else的使用方法、常见用法以及一些高级技巧。1.基本语法if-else语句的基本结构如下:Python复制if条件表达式:#如果条件表达式为True,执行这里的代码块passelse:#如果条件
- 这么简单的从零到一做HTML 网页,你确定不来看看吗?
paid槮
html服务器前端
HTML网页的介绍HTML(HypertextMarkupLanguage,超文本标记语言)是一种用于创建网页的标准标记语言,是一种与Python不同的编程语言。网页文件的扩展名通常为,html或.htm,这两种扩展名都可使用,并不会影响文件内容简单的HTML网页框架每一个HTML网页都包含一个基础框架,其他的内容都是在基础框架内进行扩充的。示例代码:这里是标题在这里填入正文这是一个较为基础的HT
- Python 2和Python 3的区别?
山禾家的猫
Python社区,有这么个怪问题:“学Python到底是学2还是学3?”这个问题就像月经一样每隔断时间就出现在你面前,也成了很多初学者的选择困惑,这个问题的“始作俑者”当然是Python它爹,大家众说纷纭,有说Python2是主流,大公司都在用,你应该学2。也有说Python3才是未来主流,大多数第三方框架已基本支持Python3。个人看法是Python2还会存在很长一段时间(只要那些用Pytho
- Python基础和高级【抽取复习】
斟的是酒中桃
python学习
1.Python的深拷贝和浅拷贝有什么区别?浅拷贝【ls.copy()】:将列表的不可变对象【值】复制一份,同时引用其中的可变对象【列表】,共用一个内存地址深拷贝【ls=copy.deepcopy(list)】:完全的复制原可变对象,生成新的可变对象,两个对象互相独立2.列表和元组的区别是什么?1.列表概念:有序序列,使用[]定义,元素之间用,隔开有序序列增删改操作:可以增删改列表的任意元素不可变
- [Python]Python中if-else的语法,用法示例
LN花开富贵
Pythonpython学习笔记嵌入式单片机opencv
Python中多条件判断通过if-elif-else结构实现,elif是elseif的缩写。一、基础语法结构if条件1:#条件1为真时执行的代码块elif条件2:#条件2为真时执行的代码块elif条件3:#条件3为真时执行的代码块else:#所有条件均不满足时执行的代码块顺序判断,当第一个条件满足时其对应的代码块会被执行,后续elif的条件不在检查,如果都是if语句,那么执行完第一个if后后面的i
- python源码下载
python源码下载(2010-12-1823:11)不知道python.org一直被堵在墙外…1、http://ftp.python.org/ftp/python/2、http://www.python.org/ftp/python/
- Python接地气入门。
欢迎来到"鑫哆哆"编程角世界上最好的语言PYTHON?鑫哆哆跟python的机缘为什么选择python合理的设计学习计划,有助于攻略的成功合理驯服自己脑子合理骗过自己脑子合理安排反馈鑫哆哆的学习python计划基础语法缩进语句规则控制语句规则表达式规则函数规则对象规则类型规则数学运算直接觉醒!鑫哆哆的课程选取迈出第一步恭喜大家成功入门python!总结世界上最好的语言PYTHON?新的一年祝大家心
- Python镜像源
染诗
python
https://www.cnblogs.com/songzhixue/p/11296720.html
- python设置国内源
twilightdream
python
mkdir.pipcd.piptouchpip.confnanopip.conf贴上[global]trusted-host=mirrors.aliyun.comindex-url=http://mirrors.aliyun.com/pypi/simple
- 华为OD机考 2025C卷 - 围棋的气 (C++ & Python & JAVA & JS & GO)
无限码力
华为OD机试真题刷题笔记华为od华为OD机试2025C卷华为OD机考2025C卷华为OD2025C卷
围棋的气华为OD机试真题目录点击查看:华为OD机试2025C卷真题题库目录|机考题库+算法考点详解华为OD机试2025C卷100分题型题目描述围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19x19=361个交点,对弈双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。“气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:在棋
- 华为OD机考 2025C卷 - 对称美学 (C++ & Python & JAVA & JS & GO)
无限码力
华为OD机试真题刷题笔记华为od华为OD机试2025C卷华为OD2025C卷华为OD机考2025C卷
对称美学华为OD机试真题目录点击查看:华为OD机试2025C卷真题题库目录|机考题库+算法考点详解华为OD机试2025C卷100分题型题目描述对称就是最大的美学,现有一道关于对称字符串的美学。已知:第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字符串:BRRBRBBR第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错!就是第i个字符串=第i-1号字符串取反+第
- 华为OD机试 2025 B卷 - We are a Team (C++ & Python & JAVA & JS & GO)
无限码力
华为OD机试真题刷题笔记华为od华为OD2025B卷华为OD机考2025B卷华为OD机试2025B卷华为OD机试
WeareaTeam华为OD机试真题目录点击查看:华为OD机试2025B卷真题题库目录|机考题库+算法考点详解华为OD机试2025B卷100分题型题目描述总共有n个人在机房,每个人有一个标号(1<=标号<=n),他们分成了多个团队,需要你根据收到的m条消息判定指定的两个人是否在一个团队中,具体的:消息构成为abc,整数a、b分别代表两个人的标号,整数c代表指令c==0代表a和b在一个团队内c==1
- Python中if-else判断语句、while循环语句以及for循环语句的使用总结
bentou_
1.if-esle流程判断语句我们来直接看一个例子,如下,判断我们定义的用户名和用户输入的用户名是否一致。代码当中有几个注意点:判断的时候用双等号表示判断是否一致(三个等号表示赋值)你有没有注意到这里不是用的大括号而是用的冒号!python3对父级和子级的写法是极为严格的,就像这里的if跟else,都是父级,需要顶格写;下面的两个子级(print那里)就需要缩进一个tab。_username="b
- Python库安装国内源
奔跑的石头_
pythonpythonAI编程
关注公众号“码字读书会”,了解最新消息。Python国内源包括企业和高校机构打不得开源软件包资源。著名的有阿里云、华为云、清华。个人常用的有清华源临时使用命令如下:pipinstall-ittps://pypi.tuna.tsinghua.edu.cn/simple包名
- Python从入门到荒废-配置国内下载源
zrhsmile
Pythonpython
为提升Python包安装速度,配置国内下载源是常见需求。以下是主流方法汇总,结合稳定性和易用性推荐:一、pip永久配置国内源(推荐)通过修改配置文件实现“一次配置,长期生效”:创建/修改配置文件Windows:路径:%APPDATA%\pip\pip.ini(如C:\Users\用户名\AppData\Roaming\pip\pip.ini)内容:[global]index-url=https:/
- 《精雕细琢 Python 对象:深入理解 __slots__ 的性能魔法与实战应用》
《精雕细琢Python对象:深入理解slots的性能魔法与实战应用》引言:探索Python的对象管理机制在Python中,一切皆对象。然而,每一个对象背后都隐藏着复杂的运行机制。尤其在类设计中,我们往往忽略了对象属性的存储方式。今天,我们将深入剖析一个常被高级开发者使用的“利器”——__slots__,它能有效减少内存占用、提升性能,但也伴随着一些权衡和陷阱。本文旨在回答三个核心问题:__slot
- LeetCode第337题_打家劫舍III
@蓝莓果粒茶
算法leetcode算法职场和发展c#学习
LeetCode第337题:打家劫舍III文章摘要本文详细解析LeetCode第337题"打家劫舍III",这是一道中等难度的二叉树动态规划问题。文章提供了基于深度优先搜索和动态规划的解法,包含C#、Python、C++三种语言实现,配有详细的算法分析和性能对比。适合想要提升二叉树和动态规划能力的程序员。核心知识点:二叉树、动态规划、深度优先搜索难度等级:中等推荐人群:具有基础数据结构知识,想要提
- python:numpy分享(保姆级教程)
苏苏susuus
pythonnumpy开发语言
目录一、概念二、相关属性三、ndarray及其实例创建(一)ndarray介绍(二)zeros()、ones()、empty()函数(三)**arange(),**类似python的range(),创建一个一维ndarray数组。(四)**matrix()**,是ndarray的子类,只能生成2维的矩阵(五)rand()、randn()、randint()、uniform()(都是numpy.ra
- Gin框架路由
TZX_0710
介绍Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范安装1.安装Gingoget-ugithub.com/gin-gonic/gin2
- 学习日志15 python
im_AMBER
学习python
1filter()函数filter(function,iterable)filter函数是python中的高阶函数,第一个参数是一个筛选函数,第二个参数是一个可迭代对象,返回的是一个生成器类型,可以通过next获取值。filter()函数是Python内置的高阶函数,其主要功能是对可迭代对象中的每个元素运用筛选函数进行判断,然后把符合条件的元素以生成器的形式返回。下面为你详细介绍它的用法和特性:基
- Python爬虫热点项目之实现代理IP池(IP proxy pool)
薛定谔的猫96
Python爬虫
代理池概述代理池就是由多个稳定可用代理IP组成的池子。用来应对ip反爬,而网上的免费代理稳定可用的极少,更有甚者连收费的也不都是稳定可用。开发环境:windous,python3,sublimetext使用的主要模块:requests,lxml,pymongo,Flask完整源码请前往我的github仓库查看:https://github.com/R2h1/ProxyPool欢迎star哦!!!代
- python基础练习题:超市收银系统
不爱说话的分院帽
python开发语言
这个超市收银系统包含以下功能:商品管理:支持添加和显示商品信息(ID、名称、价格、库存)购物车功能:可以添加、移除商品,查看购物车和计算总价结算功能:生成收据、处理支付、计算找零并更新库存数据模型:使用面向对象设计,包含商品、购物车和超市类系统运行后会显示菜单,用户可以通过数字选择不同操作,整个流程不需要图形界面,通过命令行交互完成购物和结算过程。importdatetimeclassProduc
- Python零基础入门:魔法方法详解
一、什么是魔法方法?魔法方法(MagicMethods)是Python中一种特殊的方法,它们以双下划线(__)开头和结尾(如__init__、__str__等)。魔法方法允许你定义类在特定情况下的行为,例如初始化、字符串表示、运算符重载等。二、常见的魔法方法分类1.构造和初始化__new__(cls,[...]):创建实例时调用的第一个方法__init__(self,[...]):实例初始化方法_
- Python文件与流处理:高效读写数据的艺术
不爱说话的分院帽
python快速入门python数据库开发语言
引言作为一名程序员,我们每天都需要与文件打交道——无论是读取配置文件、处理日志文件,还是存储程序生成的数据。Python提供了强大而灵活的文件处理能力,让这些操作变得简单高效。本文将深入探讨Python中的文件与流处理,帮助你掌握这一核心技能。、一、文件操作基础1.打开文件Python使用内置的open()函数来打开文件:#基本语法file=open('example.txt','r')#打开文件
- Python 计算月头月尾
一本正经胡说八道的猫
一本正经胡说八道的猫#!/usr/bin/envpython#-*-coding:utf-8-*-importdatetimeimportcalendartime=datetime.date(2022,1,20)#年,月,日#求该月第一天first_day=datetime.date(time.year,time.month,1)print('该月第一天:%s'%(first_day))#求前一个
- python学生成绩管理系统【完整版】,Python开发基础面试题
name=self.username.get()password=self.password.get()ifname==‘hacker707’andpassword==‘admin’:self.page.destroy()MenuPage(self.root)else:showinfo(title=‘错误’,message=‘账号或密码错误!’)db.pyimportjsonclassStuden
- 【深度强化学习】MIP-DQN 实现案例(完整Python代码)
目录MIP-DQN算法概述建模基础训练阶段(Training)部署阶段(OnlineExecution)DNN网络转化为MIP表达式性能指标完整Python代码实现主函数:random_generator_battery模型函数:MIP_DQN基础/专用库包安装模型运行(完整Python代码)参数设置函数:Parameters参考本博客根据论文《Optimalenergysystemschedul
- Go与Python在数据管道与分析项目中的抉择:性能与灵活性的较量
真智AI
人工智能pythongo
你正在设计一个全新数据管道或启动一个分析项目,此时你或许正在思考该选择Python还是Go。五年前,这甚至不是个值得讨论的问题——你会毫不犹豫地选择Python,故事到此为止。然而,近年来Go在数据领域,尤其是在数据基础设施和实时处理方面,正逐渐被更多人采用。实际上,这两种语言都已在现代数据技术栈中找到了各自的定位。Python依然非常适合机器学习和数据分析,而Go则逐步成为高性能数据基础设施的首
- Redis-py 实战指南:从安装到向量索引,Python 操作 Redis 全解析
佑瞻
数据库与知识图谱redispython数据库人工智能
在Python开发中,操作Redis数据库是很多场景下的刚需,而redis-py作为Redis官方推荐的Python客户端,更是我们绕不开的工具。但你是否在安装时踩过版本兼容的坑?是否在连接集群或配置TLS时犯过难?甚至想尝试向量索引却不知从何下手?今天我们就从基础到进阶,手把手带你玩转redis-py,让Python操作Redis变得简单又高效。一、redis-py安装:避坑指南首先,我们需要安
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http