Python入门课程课件

Python入门课程课件

《Python编程:从入门到实践》一书的豆瓣评分是9.1分,说明该书是一本好书,是广受认可的图书。我讲Python课程的时候,使用了该书作为教材。我制作了与该书配套的PPT课件,在此分享给大家。课程开头讲了如何搭建开发环境,包括如何安装和使用python和pycharm。接下来一共有10章,章节目录与《Python编程:从入门到实践》一书保持一致。

课件目录
第1章搭建开发环境
python安装
在python命令行界面运行python代码
编写python的工具软件pycharm的安装
使用pycharm编写和运行*个程序
第2章变量和简单数据类型
运行Helloworld.py发生的情况
变量是什么、有什么用、怎么用
字符串的构成、写法和输入
字符串的大小写转换(首字母大写,全大写,全小写)
字符串拼接
使用制表符或换行符添加空白
删除空白
数字及其运算
整数(浮点数)与字符串之间的转换
数字的输入输出
对象和方法是什么
第3章列表
列表是什么、有什么用
访问列表的元素
修改添加列表
删除列表元素
列表排序
len函数求元素个数
第4章操作列表
用for循环遍历列表
避免写错for语句
使用range函数生成数字列表
列表的切片
列表复制和拼接
元组
第5章if语句
if语句
比较运算和布尔表达式
字符ASCII码和国标码
字符串比较
而且或者
元素在列表中吗
if-elif-else结构
第6章字典
字典是什么
字典创建和访问
字典的修改
添加键值对
删除键值对
遍历字典
第7章循环语句
一行文本中输入多个数字
while循环
break语句
continue语句
循环语句错误用法
使用循环来处理列表和字典
第8章函数
函数是什么
定义函数
函数参数
位置参数和关键字参数
参数默认值
函数返回复杂的值
用函数优化代码结构
函数参数的引用传递
可变对象和不可变对象
可变对象作为参数
变量作用域
模块
导入模块
第9章类与对象
创建和使用类
定义和调用方法
类与对象之学生实例
使用类与对象
类的继承
第10章文件
文件读取
文件路径
逐行读取
读入到列表
写入文件
写入多行文字
追加写入

区分Web服务器、HTTP服务器、应用程序服务器

在学习前端的过程中。进程听到和看到web服务器、HTTP服务器、应用程序服务器,但一直不知道它们有什么区别,迷惑了好久,今天查看的很多博客,终于算是梳理通了,下面我就来总结一下它们的区别,顺别了解一些服务器。

首先我们要知道web服务器它只需支持HTTP协议、HTML文档格式及URL。其主要功能是传送页面使浏览器可以浏览,又因为它主要支持HTTP协议,所以通常情况下web服务器和HTTP服务器是相等的。通俗讲web服务器就是专门用来处理HTTP请求的。

应用程序服务器可以简称为应用服务器,它主要的功能就是为客户端应用程序提供可调用的方法(应用程序提供(serves)商业逻辑)。

以javaEE为例,Web服务我主要处理静态页面和作为Servlet容器,解释和执行servlet/jsp,而应用服务器是运行业务逻辑的。

以这样的定义可对一些常见的服务器进行分类,IIS、Apache、Tomcat都可以属于Web服务器,Weblogic、WebSphere都属于应用服务器。下面就来了解一下这些服务器的主要作用:

Apache

在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet)。

Tomcat

早期的Tomcat是一个嵌入Apache内的JSP/Servlet解释引擎,Apache+Tomcat就相当于IIS+ASP(动态服务器页面)。后来的Tomcat已不再嵌入Apache内,Tomcat进程独立于Apache进程运行。 而且,Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把Tomcat叫做轻量级应用服务器。

IIS

微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。

综上所诉:

Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是*对的应用服务器。对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署

想不到!智能运维的正确姿势:从临场救火到淡然饮茶!

一直以来,企业运维如临场救火乃是常态,如今喝着茶水做好运维倒有望成为“一件小事”,说到底还不是智能运维赶来帮忙?

啥是智能运维?如此神奇?

谈及“智能运维”的概念,洋气一些可被称为AIOps,正好是人工智能技术与基础运维能力的完美集合,一句话概括,运用机器学习的方法来提升运维效率。

稍微回顾下运维发展我们就能发现,在历经千锤百炼达成的传统自动化运维体系中,重复性、低效率的工作伴随着人力成本的消耗已经被得到有效解决,但复杂场景下的故障处理、容量管理等问题,依然需要人来参与;这种情况下AI的加盟无非让完全意义上的自动化果断进入快车道,加速没商量!

但不少技术小伙伴可能抱着这样的想法,AIOps不就是自动化运维与机器学习的强强联合吗?

话说哪有如此easy!

关于这两者,我们通常会将智能运维与通用人工智能拿来类比,“此智能”更倾向于事先预测,即了解错误数据马上会引发重要故障时采取有效措施避免或者减弱影响。

而针对这类预测性动作所涉及的数据处理,也正好发挥了机器学习处理海量、高速以及多样数据并带来高价值的专长。

如果从全球范围内AIOps产品的技术侧重点来分析的话,无外乎两种,即侧重AI方向与偏Ops一些。

很容易理解*种。无非是将数据放入具体场景中测试判断AI技术是否可以更好的解决实际问题,在算法实验的过程中挑选合适的采用即可。

相比*种,第二种则需要在整体的运维流程中预先判断瓶颈障碍,进而得出AI 技术是否可以将问题解决,可见这都不是两者单纯相加那么容易。

说完技术点再聊聊数据。

换个探讨角度,从运维数据出发,例如对于常规的硬件设备,包括开源基础软件在内,日志数据应该是*能展现当时其运行状态。

常见的关键词warning、 error、critical 等或多或少都可以反映出平常不太留意甚至少见的系统情况,进而发现潜在问题。

但如今现实中很多用户的运维业务与系统中的代码并不都是自己的研发人员写成的,更多的外采设备如果出现问题并不能及时得到解决,造成了“日志到手*非想用就用”的状态,肿么办?

一般在这种不知道具体源码的情况下,通常利用无监督聚类的方式完成反向推导,就可大致获悉日志在实际中的代码操作情况,尽管不能做到百分百还原,但也会*大限度预测出发展逻辑,只需目标明确再加额外关注即可在故障预判中做到事半功倍。

目前无论是智能运维中的监控指标还是在日志分析,运用AI技术*简单的方法就是使用一些非监督学习的算法,例如聚类算法,即Cluster Analysis,也被称为群集分析(将相似对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性。)

尽管在具体的运维场景中,仅凭如今的机器学习水平暂不能将每条路径都做到灵活使用,但异常检测方向还是落地频次较高的。只要具备足够的运维数据支持,在调用链基础上的拓扑与图谱推导都会被华丽丽的实现。

高屋建瓴一下,在神奇的AIOps场景中,数据已然成为中心资源,将运维各种状态信息转换为大数据的过程中,机器学习在基础上完成相应的分析,全流程就ok啦!

在智能运维的大盘中,机器学习技术与各类运维数据,都不可缺。

深入分析运维数据的那些事儿,我们发现其实在实际操作过程中,运维数据主要分动静两态,以运维大数据平台为例,通常部分静态数据可直接加载在内心数据库中,并保存在结构化数据库或者Hive平台。

相反,主要包含各类监控指标数据、日志数据以及第三方扩展应用所产生的动态数据,一般是实时生成并被获取作为基础数据,过程中需要通过数据清洗转换成可使用的样本数据。

其中日志数据概念尤其广泛,机器产生的文本数据与具体数值都算;但涉及到场景的细分,用于监控的指标数据才会被经常使用到,例如调用链数据等。

以日志为代表的动态数据一般按不同的使用场景保存在差异性的大数据组件中,例如用于分析的数据会优先保存在Hive数据库,用于检索的日志数据可保存在ES(即Elasticsearch)中,当然业界也有进行ES改造或者替换的情况,例如日志易Beaver。
————————————————
%title插图%num

Beaver作为一个由C++语言编写的高性能、分布式、时序数据库,对包含日志及指标在内的各类时间序列机器数据采取分词索引、列式存储等方式,实现实时全文检索、时间范围查询和统计分析功能,同时也支持时序数据特有的滑窗函数、关联查询等功能。

聚焦具体的采集过程,以日志易为例,数据类型不太会影响具体的采集过程,只是会对采集之后是否用于异常检测或者根因定位的算法加以区别,数据能否在合适的位置产生恰当的作用才是重点。

“我们的智能运维更多是定位与分析,利用日志数据指标去定位故障并进一步驱动相应的自动化运维工具来修复,这也是业务运维的重点。”智能运维领域资深技术人,也是日志易产品总监的饶琛琳说道。

以运维排障解释,排障关注的并不是每个设备的情况,而是顶层业务运行的概况;简单来说得到一个总告警是无用的,更多是深入底层不同的模块系统加以判断。

比方说将不同的平台日志拿来进行快速查询,但如果采取对查询结果的一一尝试所消耗的时间成本就很巨大;相反若将搜集数据聚集,通过性能强大的搜索引擎过滤,再进一步凭借AI算法完成结果分类的几种模式,如此一来上千万条日志就会被“萃取”成几十条结果,时间成本大大降低。

如此说来,刚刚提及的“萃取”理念倒是与日志易Lynxee系统技术初衷如出一辙。

有资料称,Lynxee系统应用其实是基于日志易强悍的数据检索平台功能,再结合前期丰富的自动化运维经验“锻造”而成的智能运维系统,目前主要应用在各类金融行业的用户群体中。
————————————————
%title插图%num

在Lynxee中,由于多种智能算法被提供用来自动判断运维指标的监控效果,就无需手动设定监控阈值,其中的异常检测会自动给出监控项目的健康分数,帮助用户主动发现和排查平常难以发现的问题。

但更多人认为,实践中的异常检测就像预测股票大盘走势一样,概念貌似不大,但实际难度却不小。面对这样的判定,日志易采用了“不断加定语”的方式来循序渐进降低应用的难度。

所谓“加定语”其实是更好地运用专业的运维知识,不断缩小异常检测的场景应用范围,指标细致到是请求量的异常还是响应时间异常等,从而进一步明确预处理的工作内容。

比如性能瓶颈被检测出来后,就可以对这部分进行代码优化或者定向扩容;如果预测出来是设备故障,就可以着手更新设备;而故障预测可以帮助进行动态流量切换或者硬件替换等。

坦白说这种理念有点儿类似于“庖丁解牛”,从起初的目中全牛且无从下手,到后来的目无全牛,根据经脉切中要害并游刃有余,不困扰在某个具体的技术细节上。

“我们实操中的智能运维不单单是一个算法平台,而是基于成熟的运维知识构建的流程体系化,其中涉及服务设备概念、监控来源常识等,从发现故障到加持检测算法,然后定位故障全流程一栈式,用户并不需要过多挂心来源于算法本身的种种技术问题。”

对于经验与未来,不可否认,智能运维依旧存在很多令人惊喜的可能性。例如在成熟日志处理的基础上,提升算法的交互融合程度以及更多实际应用场景的拆分等,都是亟待完善的地方。

谈及前景,我们留意到,一直在IT圈以“权威”著称的Gartner的报告也曾作出预测:智能运维于2020年将在一半以上的企业中落地并贡献生产力。

作为传统运维与新兴AI技术的高度结合,且一度被誉为“朝阳产业”的智能运维,看起来前景一片大好,不错;但在技术成熟度上还有很大的提升空间,亟待被重视。

尤其是近年来得到云原生微服务架构的技术洗*,不知不觉也产生了诸多新变化!

或许小伙伴们多少有些了解,过去大家考虑的是如何达成或者提升自动化运维水平,快速部署上线才是王道。

如今更多精力则集中在保证规模与满足微服务架构的运维监控方案的高可用性,简单点儿说就是可观察性。

毕竟在全面云化的条件下,因为体量规模增大,业务细分的颗粒度也随之提升,过程中难免会涉及到上百个接口的调用,这就意味着仅仅依靠单纯的性能监控指标远远不够。

而可观察性就是为了达成包括指标日志、调用链、变更数据等不同角度运维数据在内的统一,从各种维度观察服务运行的状态是否良好。

本质上可以算是传统监控概念的智慧升级,简单说就是用智能运维的方式解决微服务架构的基础运维问题。

正如饶琛琳所言,其实对于运维数据来说,架构创新只会带来写入介质的更改,比方说从本地磁盘过渡到对象存储。

这一点不像网络抓包,自身依赖的环境发生改变,整体的基础设施也就随之变化了。

据了解,日志易做的是“造福”业务运维团队的事儿,不同于传统数据中心基础运维,对于云原生微服务等一揽子创新架构上的应用支撑,其实早早就做好了打算。

但他也表示,就算门槛不高、本质未改,但适当的技术调整依旧是需要的。

毕竟新架构下的存储机制以及输出方式有了改变,迫切做好的是接入方式的合理适配与改造,以此确保动态调度的时候,不会影响数据采集的准确性。

过去在采集过程中,可能只需要一两个数据标签完成具体业务应用来源某台主机的区分。

但在弹性的云原生、微服务以及容器环境下,需要配合pod确保映射管理以及数据采集完整等细节,尽可能降低底层架构改变带来性能的差异。

目前除了像日志易一样的IT企业入局智能运维领域外,突破运维的智能化也成为有关科研机构的攻坚热点。

其中不仅出炉了有较为先进的科技成果,从算法层面上支撑发展落地;更重要的是已经与工业界展开了密切合作,例如卡内基梅隆大学与Netflix公司联手。

另外类似于以专业大数据搜索与可视化见长的Splunk,也将智能运维管理平台的研发视为帮助用户实时了解IT架构现状的利器之一,通过将机器学习的数据加以转化形成有价值的运维建议广泛传播,同理还有科技巨头IBM以及华为等。

当然,在高利润、高技术含量的驱动下,互联网巨头与金融行业也争相参与其中,比方说阿里巴巴针对智能故障管理平台的研发以及各类银行对于运维大数据平台的建设等。

尽管多方入局,但与之关联的企业级智能运维建设,除了具备全栈式运维数据的刚性条件外,更重要的是寻找颇具痛点的场景来入局尝试,避免直接使用标准的算法通过黑盒方式解决问题,目前来看异常检测*对是首当其冲的应用场景。

这样来看,无论企业从运维数据中台建设还是从规模较小的场景化切入,运维数据的治理能力与质量提升以及机器学习技术的合理应用,都是加快智能运维发展的一系列必备因素。

谈及智能运维的将来,饶琛琳认为AIOps早已声势浩大,让运维更加智慧便捷,没什么不可能……
————————————————

python入门书籍

python入门书籍(爬虫方面)
可以选以下几本书(个人看法):

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。
网页的基本知识:
基本的HTML语言知识/理解网站的发包和收包的概念/js知识,静态网页和动态网页
3.学爬虫,需要理论与实践相结合,Python生态中的爬虫库多如牛毛.在学习这些库的同时,需要去系统的学习爬虫的相关原理,理论知识,才能更好的了解.
Python入门:《A Byte of Python》
数据库入门:《MySQL必知必会》
HTTP入门:《图解HTTP》
Linux入门:《快乐的 Linux 命令行》
正则入门:《精通正则表达式 》

 

关于个人服务器的选择问题

想入一台基础的服务器来部署项目和搭建个人博客,请问各位大佬。阿里云,腾讯云,华为云怎么选?之前用过一段时间的阿里云,感觉还不错。

Steps 252 天前
腾讯云。。24 块 轻量 很香!
wangqh333 2
wangqh333 252 天前
@Steps 有这么便宜的?麻烦上个链接,谢谢!
VsevenMagic 3
VsevenMagic 252 天前 via iPhone
我是上的国外 aws 的云
opengps 4
opengps 252 天前
不用挑选,个人用途多折腾下,那个便宜用那个行了,除了价格,你现在还没必要去在意别的,三家的首购特价都用上一次,你就明白你要用哪个了。私聊我可以了解羊毛细节
txydls 5
txydls 252 天前
24 元轻量的,建议上 79 元 1 年 279 元 3 年的 1 核 2G1M 云服务器不香嘛~
s4nd 6
s4nd 252 天前
@txydls 79 一年的在哪里老哥
txydls 7
txydls 252 天前
@s4nd 加我 v:MTg4OTk3NzgxMDU=
txydls 8
txydls 252 天前
@s4nd 官网原价是 99 的呢 基本上找代理商优惠就是这个价了
q428202849 9
q428202849 252 天前
都是大厂不会有什么问题,换着薅
Steps 10
Steps 252 天前
@wangqh333 #2 https://buy.cloud.tencent.com/lighthouse

aliyun75 251 天前
阿里云学生及了解一下,1 核 2g 没有性能限制,一年 94,我这里还能提供阿里云产品优惠,有需要联系我 VX:一三一零一二三四五三九
zhenjiangidc 12
zhenjiangidc 217 天前
如果机器 有服务器的话,托管还是比较好的,, 或者 你可以试试,,学生机 ? 套路云?

csgo 自建服务器要什么配置?

*近各家云都在打折,打算再搞个用来搭 csgo 私服,没搞过,不知道要什么配置。特请教下搞过的大佬

crokily 1
crokily 140 天前
有没有守望先锋的私服?
MeteorCat 2
MeteorCat 140 天前 via Android
别把防火墙关闭手动查端口放行,单核 2G 内存我记得可以开个小房间了,不过我搭的是杀戮间 2
zzNaLOGIC 3
zzNaLOGIC 140 天前
@crokily 不玩守望了所以没打算搞,哈哈

@MeteorCat 主要担心延迟,没搞过不知道 1/2 撑不撑得住
ioriwong 4
ioriwong 140 天前 via iPhone
搭好了记得告诉我,我想玩哈哈
ReddW 5
ReddW 140 天前 via Android
内网搭过一个,9100f 可以,i5 7500 可以,破 i5 4460 ping 不稳,win10 搭的,linux 没试,你参考一下吧。带宽不用很大,感觉上 2m 足够用了
zzNaLOGIC 6
zzNaLOGIC 140 天前 via Android
@ReddW 感谢
cxbeat 7
cxbeat 139 天前 via Android
@crokily csgo 有私服是因为 v 社比较开放给了服务端,客户端也可以直接连接 ip 。守望先锋应该没有这种依赖社区的体系吧
ahmatjan 8
ahmatjan 123 天前
一核 2G5m 带宽即可满足满十游戏,主要是 CPU 性能需求较高,不然 sv 爆炸就很卡,我目前搭了四个,可以来玩儿

云管理服务AWS Organizations正式在AWS中国区域上线

近期, AWS中国(宁夏)区域(由西云数据运营)和AWS中国(北京)区域(由光环新网运营)正式上线了云管理服务AWS Organizations。

作为一种管理服务,AWS Organizations可集中控制和管理多个AWS账户,无论是初创公司还是大型企业均可以使用,而不需要额外付费。

随着企业或机构在 AWS 上的工作负载不断增加,他们需要更多的管理手段。通过使用AWS Organizations,可以集中管理账单,控制访问权限,统一管理合规性和安全性,并在各个 AWS 账户间共享资源。

使用AWS Organizations可以带来以下好处:

集中化。通过AWS Organizations及相关服务,企业可以安全地批量管理用户身份、云资源和使用权限。具体来说,客户可以创建帐户组,将策略添加到组,确保对帐户应用正确的策略,无需自定义脚本和手动流程,轻松地部署控制防护机制,进行精细的访问控制,为员工、应用程序和设备授予他们需要的 AWS 服务和资源访问权限。
自动化。使用AWS Organizations,企业可以自动创建和管理 AWS 帐户,简化 IT 操作。例如,可以自动创建新账户,实现工作负载或应用隔离,让这些账户中的实体只访问必要的AWS服务。
灵活性。通过AWS Organizations及相关服务,客户能够委派管理任务,辅之以一些自动化功能,轻松管理多账户的大型 AWS 环境。借助 AWS Organizations,客户可以保持资源管理规则的一致性,从而提高安全性,保持合规性。AWS Organizations 有助于在公司内多个帐户之间配置 AWS 服务、分享资源。
整合。使用 AWS Organizations,可以整合账单,为所有 AWS 账户设置同一种付费方式,并且方便综合查看各个账户产生的费用,还可以汇总使用量,以获得AWS的批量折扣,从而节省成本。
自 1999 年成立以来,WirelessCar一直致力于引领汽车行业驶向数字化社会。通过数字服务为汽车互联赋能并提供技术支持,在汽车行业和电信技术领域之间搭建起桥梁,创建一站式的汽车移动电子服务平台。

WirelessCar 高级项目经理 Eric Sun表示,“WirelessCar 在全球一直使用AWS Organizations 来帮助集中管理账单,控制访问权限,管理合规性和安全性,并在各个 AWS 账户间共享资源。通过使用这一服务,我们有效降低了账户运维管理的时间,节省了人力成本,有效提高了IT运维效率,并让我们可以专注在业务开发和创新上。非常高兴AWS Organizations 服务在中国区域落地,相信这将对我们提高日常管理效率带来*大的帮助。”

埃森哲和AWS有持续而深入的合作,为多个客户提供上云和云上相关方案的咨询、迁移和实施服务。埃森哲云计算业务总监王赟超说:“AWS Organizations服务在中国区域上线,对我们为客户设计实施云上自动化的整合账单、云上多账号管理方面提供强有力的帮助。尤其在 AWS Landing Zone解决方案中,自顶向下设计账号结构并实现层级管控,为实现整个组织的安全合规控制节省了时间。”
————————————————

python中的&&及||

python中的&&及||

%title插图%num

首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。

接着重点要说明的是python中的a.any(),我之所以会涉及到这个函数,是因为我在设计某个分段数值函数时由于不细心犯的错误引起的。a.any(),根据官方解释:

  Test whether any elements of an array evaluate to True along an axis.

即针对的是一个list,判断list中的某个元素是否为真,此时只要有一个元素为真,list元素全部输出。下面一个例子更直观的做了解释:

23
#!/usr/bin/python
#coding=utf8

importnumpy as np

deff(data):
forval indata:
ifval <=0.6:
r1=val*1
print”this is <= 0.6 numbers”, r1
ifval > 4:
r1=val*1
print”this is > 4 numbers “, r1

defmain():
data=np.arange(0.1,5.1,0.5)
ifnp.any(data > 0.3)andnp.any(data <=1):
r1=data *1
printr1
f(data)

if__name__==’__main__’:
main()
对应的输出是:
?
1
2
3
4
5
[0.1 0.6  1.1  1.6  2.1  2.6  3.1  3.6  4.1  4.6]
thisis<=0.6 numbers 0.1
thisis<=0.6 numbers 0.6
thisis> 4numbers  4.1
thisis> 4numbers  4.6
在a.any()中,只要满足条件,整个list就是true的。而我在分段函数计算时,恰恰使用到了a.any()来判断list的范围,在后面的计算中,其实是整个list同时运算然后赋值了,也就将分段函数结果简化成了某一段的所有值。正确的计算分段函数有两中策略,要么像上面的函数f(),要么将list分段带入运算。
这个问题我纠结了一个晚上,*后才发现是a.any()的问题。*开始使用的时候,其真正的用法没有具体熟悉,同时我也该反省我自己,对python语言掌握的实在太菜了!
路漫漫其修远兮,吾将上下而求索~

Android Studio开发中遇到的问题及解决方法

Android Studio开发中遇到的几个问题及解决方法:

1.创建虚拟机后,运行时出现错误对话框,错误内容如下:
KVM is required to run this AVD.
/dev/kvm is not found.
Enable VT-x in your BIOS security settings, ensure that your Linux distro has working KVM module.

解决方法:
重启电脑,按Enter键,再按F1键进入系统固件设置(BIOS)界面(这是ThinkPad T460p的进入方法,其他机型需查询对应品牌的用户手册),使用左右光标键移动至至“Security”页,用上下光标键移动至“Virtualization”项,按Enter键,再用上下光标键移动至“Intel (R) Virtualization Technology”项,按Enter键,选择“Enabled”选项,按F10键保存退出,重启操作系统,问题解决。

2.Gradle构建出现如下错误信息:
Error:Execution failed for task ‘:app:buildNative’.
> A problem occurred starting process ‘command ‘/home/davidhopper/Android/Sdk/ndk-bundle/ndk-build”
更为详细的错误信息如下:
Executing tasks: [:app:assembleDebug]

Configuration on demand is an incubating feature.
NDK is missing a “platforms” directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /home/davidhopper/Android/Sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

Incremental java compilation is an incubating feature.
:app:buildInfoDebugLoader
:app:buildNative FAILED
:app:buildInfoGeneratorDebug

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:app:buildNative’.
> A problem occurred starting process ‘command ‘/home/davidhopper/Android/Sdk/ndk-bundle/ndk-build”

* Try:
Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output.

BUILD FAILED

Total time: 6.369 secs

解决方法:
该错误信息说明在“/home/davidhopper/Android/Sdk/ndk-bundle/”文件夹下找不到“ndk-build”文件,因为Android Studio未自带NDK开发工具,因此会出现此错误。
到“https://developer.android.google.cn/ndk/downloads/index.html”下载Linux 64 位 (x86)版本,我下载的时候,版本号为:android-ndk-r14b-linux-x86_64,下载完毕后将其解压,得到一个“android-ndk-r14b”文件夹,将其内部的所有文件全部移动至“/home/davidhopper/Android/Sdk/ndk-bundle/”文件夹下,重启Android Studio,问题解决。

3.使用Android studio启动模拟器时,状态栏一直停在“waiting for target device to come online”提示界面,无法弹出模拟器界面。

解决方法:
该问题源自SDK自带的库文件版本问题,将本机相关库更新后映射过来即可,具体步骤如下:
a).更新安装库:
$ sudo apt-get install lib64stdc++6:i386
$ sudo apt-get install mesa-utils

b).Android sdk存放目录下的文件夹如:
$ cd ~/Android/Sdk/emulator/lib64

c).备份原有libstdc++目录:
$ mv libstdc++/ libstdc++.bak

d)将本机库链接过来:
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++

e)重启Android Studio,问题解决。

4.模拟器启动后,弹出错误提示对话框,内容如下:
Installation failed with message Failed to finalize session : INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

WARNING: Uninstalling will remove the application data!

Do you want to uninstall the existing application?

解决方法:
这是由于使用了native libraries,而native libraries不支持当前的cpu的体系结构,可以使用修改配置文件的方法加以解决。
打开工程“app”目录中的“build.gradle”文件,找到如下位置:
android {
compileSdkVersion 23
buildToolsVersion ‘25.0.0’
在下面添加如下语句:
splits {
abi {
enable true
reset()
include ‘x86’, ‘armeabi-v7a’,’x86_64′
universalApk true
}
}
保存,重启模拟器,问题解决。

Python中的*使用

Python中的*使用

Python中的*使用
在为函数传递参数和函数定义时使用参数的时候,时常会看到有和 *和**,下面分别讲解其作用。

调用函数时使用*和 **
假设有函数
def test(a, b, c)

test(*args):* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。

test(**kwargs):** 的作用则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {‘a’:1,’b’:2,’c’:3} ,那这个代码就等价于 test(a=1,b=2,c=3) 。

定义函数参数时使用*和**

def test(*args):
定义函数参数时 * 的含义又要有所不同,在这里 *args 表示把传进来的位置参数都装在元组 args 里面。比如说上面这个函数,调用 test(1, 2, 3) 的话, args 的值就是 (1, 2, 3) 。:

def test(**kwargs):
类似的, ** 就是针对关键字参数和字典的了。 调用 test(a=1,b=2,c=3) 的话, kwargs 的值就是 {‘a’:1,’b’:2,’c’:3} 了。

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速