- Python学习笔记07
正文01
python学习笔记
第十三章,面向对象初识对象生活中数据的组织学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填我叫林军杰,今年31岁.来自山东省,我是男的,中国人内容混乱改为登记表,打印出来让学生自行填写:姓名林军杰姓别男国籍中国籍贯山东省年龄31整洁明了程序中数据的组织在程序中简单使用变量来记录学生信息student_1={"姓名":"周杰轮","性别":"男","国籍":"中国","籍贯":"台
- Python学习笔记03
正文01
python学习笔记
第五章、Python函数函数介绍函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段name="itheima"length=len(name)print(length)输出结果:7为什么随时都可以使用len()统计长度?因为,len()是Python内置的函数:是提前写好的可以重复使用实现统计长度这一特定功能的代码段我们使用过的:input()、print()、str()、int()等都
- Python学习笔记 —— 文件处理模块
miles-zh
pythonpython
Excel文件openpyxl读/写Excel文件,https://pypi.org/project/openpyxlxlwt创建Excel文件,设置单元格样式,https://pypi.org/project/xlwtxlrd读取Excel文件,https://pypi.org/project/xlrdxlutils修改Excel文件,https://pypi.org/project/xluti
- 【Python学习笔记】Python logging模块的学习
Augenstern K
Pythonpython学习笔记
Pythonlogging模块基础介绍作用与功能基本用法引入模块创建并配置记录器的基本步骤代码演示日志级别日志消息格式用法介绍代码示例日志的输出位置代码示例日志记录的高级功能对日志记录进行过滤和处理在多个模块中使用同一个日志记录器总结当谈到日志记录时,logging库是Python中最常用的工具之一。它提供了许多功能和选项,使开发人员能够灵活地记录和管理应用程序的日志信息。引入logging作为P
- Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
猿说编程
目录一.Python线程池前言二.Python线程池ThreadPoolExecutor常用函数1.线程池as_completed函数使用2.线程池map函数使用3.线程池wait函数使用三.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门一.Python线程池前言紧接着上一篇文章Python线程池ThreadPoolExecutor(一)我们继续对线程池深入一
- Python学习笔记(1)——环境安装与变量
ThinkerChenYi
python学习笔记Python学习笔记
python环境安装-python2还是python3python2只支持到2020年,并且python2和3有不少用法差异。要是刚学完python2不久就发现过时了这就很尴尬了,所以推荐使用python3-安装环境推荐:Anaconda+pychamAnaconda是一个python的科学计算包,python环境,常用模块以及工具都包含在里面,省心省力官网:https://www.anacond
- 2021-11-1 台式电脑出问题了,手机更新
小白的姐姐
Python学习:学习第四章部分内容今天做的事情:工作上了一节瑜伽课学习python感想:今天继续看了部分>,脑中产生了一个疑问,古时候交通不便,知识交流不通畅,老子他们是如何知晓世界万物发展的道的?不同的事物是不是有不同的发展规律呢?如果要遵循道来思考行事,首先自己要知道发展的规律吧?那么这个规律怎么获得呢?可以通过一个规律归纳出其他规律呢?这个是我今天疑惑的地方。还有就是关于书中要将书读薄的观
- Python学习-----命令行参数解析argparse库
被Python玩的Kenny
常用操作python学习整理学习python
一、argparse库介绍1、argparse库是python自带库,不用特殊安装2、argparse库是可以很好的解析命令行参数。即将python-a-b--path等-a、-b、–path这些的命令行参数值解析并保存起来,以供程序使用。二、关于命令行参数的一些说明命令行参数分为必选参数和可选参数。必选参数:又名位置参数,即在参数值不需要跟在参数名后面,而是通过在命令行里的相对位置来决定其属于哪
- 2.25python笔记 高阶编程
13351
@[TOC](2.25学堂在线python学习笔记高阶编程)#高阶编程1.利用二分法查找一个字符是否在某个字符串当中基线条件:当s=''时,返回False当len(s)=1且s==char时返回True当len(s)>1且s[mid]>char时,返回isIn(char,s[:mid])否则当s[mid]1:ifs[mid]>char:print(s)returnisIn(char,s[:mid]
- Python print 函数- Python零基础入门教程
猿说编程
目录1.print函数输出单个字符2.print函数输出多个字符3.设置print函数不换行4.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门print翻译为中文指打印,在Python中能直接输出到控制台,我们可以使用print函数打印任何变量的值到控制台,简单方便。1.print函数输出单个字符print函数能直接打印单边个变量a=1.0print(a)#输
- Python学习DAY06_面向对象编程_基础
是憧憬呀
Python学习python
面向对象编程面向对象思想有3大要素:封装、继承和多态。把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。上面是比较官
- Python学习系列 -认识面向对象三大特性、可见性和属性装饰器
需要休息的KK.
python学习javapycharm面试
系列文章目录第一章初始Python第二章认识Python变量、类型、运算符第三章认识条件分支、循环结构第四章认识Python的五种数据结构第五章认识Python函数、模块第六章认识面向对象三大特性文章目录系列文章目录前言一、类和对象1.定义类2.创建和使用类对象3.使用类对象中的方法4.初始化二、面向对象的三大特性1.封装2.继承3.多态三、属性可见性四、属性装饰器总结前言面向对象编程是一种非常流
- 从0开始python学习-54.python中flask创建MD5和base64加密校验的接口
不会代码的小测试
pythonpython学习flask测试工具开发语言后端
MD5加密接口importhashlibfromflaskimportFlask,request,jsonify#初始化一个flask的对象app=Flask(__name__)#MD5加密校验数据请求#定义用户数据user_data=[{"username":"admin1","password":"E10ADC3949BA59ABBE56E057F20F883E"},#123456{"user
- python学习(十)文件和异常-(下)
August________
异常使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生python不知所措的错误时,都会创建一个异常对象。编写处理该异常的代码,程序将继续执行。如果未对异常做出处理,程序将停止,并显示一个traceback。使用try-except代码块处理异常处理ZeroDivisionError异常print(5/0)Traceback(mostrecentcalllast):File"D:\学习
- python学习记录4--给自己:布尔运算&循环(break,continue,pass,else,exit())
mee_tiz
python
M酱正在快马加鞭地赶来(咚咚咚)~~~一、布尔运算1.定义:布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。由于布尔在符号逻辑运算中的特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,将其结果称为布尔值。逻辑运算(logicaloperators)通常用来测试真假值。最常见到
- Python初学之旅:探索、挑战与收获
琛哥的程序
python开发语言
自从我决定踏入编程的大门,Python成为了我选择的第一把钥匙。这把钥匙不仅为我打开了一个全新的世界,还让我在其中找到了乐趣、挑战和不断的成长。在此,我想分享我作为初学者的Python学习之旅,记录那些摸索、尝试和突破的时刻。在开始学习之前,我对编程几乎一无所知,只知道它是一种让计算机执行任务的方式。选择Python作为起点,是因为听闻它的语法简洁、易于上手,而且应用领域广泛。但真正踏入学习之后,
- mitoinstaller,一个强大的 Python 库!
Sitin涛哥
Pythonpython开发语言
更多Python学习内容:ipengtao.com大家好,今天为大家分享一个强大的Python库-mito。Github地址:https://github.com/mito-ds/mito在Python开发中,打包和发布应用程序是一个常见的任务,尤其是当你想要与其他人分享你的应用时。MitoInstaller是一个方便易用的Python库,旨在简化Python应用程序的打包和发布过程。它提供了简单
- 平淡无奇的一天
王玉增之成长
早上卧床阅读了半小时【创富法则】,制作阅读书签一张!哈哈哈,美好的一天开始啦!断舍离是一件愉悦身心健康的事!起床后把昨天换下的衣服洗干净晾上!屋里收拾了一翻,该丢的都丢了,开开心心的出门啦!主要是花了8.9元报了Python学习,写代码果然不容易,用了一个下午才过了两关!每天3关才可以跟上7天进度!所以要好好学习,要把时间倾斜过来!每天至少两个小时在这个课程上面!晚上带着徒弟玩5回合实现出圈梦想的
- Python学习笔记——逻辑运算符not,and,or
phoebe’
python
运算优先级:not>and>or三个都从左往右解析,区别如下not:返回布尔型(TrueorFalse)>>>not7False>>>not0Trueand:有0(False)则返回0(False),否则返回后一个变量(常数)>>>3and0and10>>>1and2and33>>>Falseand1Falseor:返回第一个不为0(False)的变量(常数)>>>FalseorTrueTrue>
- python学习笔记——三目运算符与逻辑运算符
phily123
python学习笔记python
一、三目运算符python中用ifelse来替代其他编程语言的?:三目运算符,并且用法不同。ifa>b:c=aelse:c=bpython中:c=aifa>belsebc语言中:c=a>b?a:b二、逻辑运算符python中逻辑运算符用andornot:20and10#结果是1020or10#结果是200or10#结果是10not10#结果是Falsenot0#结果是Truec语言中逻辑运算符用&
- Python学习第三天——逻辑运算符、输入输出、流程控制
听风-_-
学习记录python
1.逻辑运算符not“非”,如果x为True,则返回False。and“与”,y为True,如果x为Fals额,xandy的结果为Flase。若x为True,则返回y的值。(判断结果为True)or“或”,y为False,如果x的值为True,则它的返回值为True,否则返回y的值。总结:当判断条件为True时,返回当前的值。优先级:not>and>or2.输入输出(1)输入python3.x中输
- Python学习记录——사 运算符
咬光空气
Python学习python开发语言后端
目录1、算术运算符2、赋值运算符3、复合赋值运算符4、比较运算符5、逻辑运算符1、算术运算符+-*/除//整数,取商%取模,也是取余,取除后的余数**指数,幂运算()()高于**高于*///%高于+-2、赋值运算符=,既可以单变量,也可以多变量赋值,比如a,b,v,d=3,g=e=r=17,也可以同时赋值多个变量3、复合赋值运算符+=、-=、*=、/=、//=、%=、**=复合和其它同在时,先算复
- Python学习——字典和集合
心若鉴
Python学习——字典和集合泛映射类型(1)什么是可散列的数据类型?如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__()方法。另外可散列对象还要__eq__()方法,这样才能跟其他键作比较。如果两个可散列对象是相等的,那么它们的散列值一定是一样的。(2)什么是hash()函数呢?hash()用于获取一个对象(字符串或者数值等)的哈希值>
- Python学习篇33-Python操作Excel存储数据
IRON~TXTECHCOM
Python语境:编码之魅理解之智python学习excel开发语言
Python操作Excel存储数据openpyxl模块openpyxl模块是一个读写Excel2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。安装openpyxl模块要想使用openpyxl模块,必须先安装此模块。直接使用pip就可以进行安装,命令如下:pipinstallopenpyxlE
- Python学习Pytorch
xdpcxq1029
python学习pytorch
一、如何查看本机是否安装了Pytorch在Python环境中查看是否安装了PyTorch可以通过几个简单的步骤来完成。这里有一些方法:使用Python命令行:打开你的命令行工具(比如Terminal、CommandPrompt或AnacondaPrompt),然后输入Python来启动Python解释器。之后,尝试导入PyTorch库来看看是否会报错。importtorchprint(torch.
- OpenCV-Python学习(九):图像滤波
星光下的胖子
目录:1.滤波的相关概念2.卷积操作3.平滑操作(低通滤波)均值滤波中值滤波高斯滤波双边滤波4.锐化操作(高通滤波)自定义锐化核USM锐化(UnsharpMask)5.梯度操作(高通滤波)Sobel算子Scharr算子Laplacian算子一、滤波的概念滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。图像滤波是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处
- Python学习(16)|列表_遍历_排序_max_min_sum
Bug.ink
学习python开发语言算法pycharm
列表的遍历:a=[10,20,30,40]forobjina:#obj是临时变量名称,随意起名print(obj)执行结果:复制列表所有的元素到新列表对象:list1=[30,40,50]list2=list1#只是将list2也指向了列表对象。也就是说list1和list2持有地址是相同的,列表对象本身的元素并没有复制print(id(list1))#执行结果:1933292032520prin
- 【python学习】——pyttsx3库实现文本朗读、音量、音速等调节
有情怀的机械男
python学习文本朗读pyttsx3
importpyttsx3#初始化朗读引擎engine=pyttsx3.init()#设置朗读速度self.engine.setProperty('rate',120)#text为需要读取的内容self.engine.say(text)#不添加下面这句,没有声音self.engine.runAndWait()pyttsx3其他应用:pythonpyttsx3实现文字朗读_JSON_L的博客-CSD
- Python学习
1eb034fb5715
Tornado是一个PythonWeb框架和异步网络库,通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接,WebSockets等需要与每个用户建立长期连接的应用程序。
- Python 教学 | Python 学习路线+经验分享,新手必看!
企研数据
pythonPython入门Python学习路线Python经验分享1024程序员节
更多内容点击查看Python教学|Python学习路线+经验分享,新手必看!Python教学专栏,旨在为初学者提供系统、全面的Python编程学习体验。通过逐步讲解Python基础语言和编程逻辑,结合实操案例,让小白也能轻松搞懂Python!>>>点击此处查看往期Python教学内容本文目录一、前言二、为什么学Python?三、Python学习路线与经验分享1.Python环境配置2.Python
- 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