提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:王香|2019-01-25 10:00:16.000|阅读 158 次
概述:Azure是微软的云(免责声明,我为微软工作)。它是托管数据,创建机器人和自动执行任务,部署Python应用程序或利用AI的绝佳基础架构。 在本演示中,在Azure上安装了一个python 3.4环境和一些库(Beautiful Soup和Flask)。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
起点是评估他们在执行各种任务时的“简洁性”(而不是对任何语言的效率或效力做出任何判断)。
这引出了我Rosettacode.org,这是任何编程爱好者的一个很棒的信息来源。它提供了各种任务(超过870个)和代码片段来解决它们,在许多编程语言中(超过680个)。
探索Rosettacode.org并比较不同的编程语言。它可以帮助您找到解决您在“本土”语言中遇到的问题的新方法,并找出其他思维方式。为此,我写了一个小应用程序来促进这个过程,我将在这里与大家分享。
该应用程序,非常基本。它只是将Rosettacode.org的代码片段长度与不同的任务和语言进行比较,并使用我最喜欢的Javascript库Highcharts在条形图上显示结果。
Azure是微软的云(免责声明,我为微软工作)。它是托管数据,创建机器人和自动执行任务,部署Python应用程序或利用AI的绝佳基础架构。
在本演示中,我在Azure上安装了一个python 3.4环境和一些库(Beautiful Soup和Flask)
第一步是刮掉RosettaCode以获取所有可用任务。我写了一个非常简短的python脚本来进行抓取。我预先选择了一部分编程语言(见languages_dict
下文),以避免刮掉太多不相关的数据。
# Selected language names and corresponding spelling/encoding as in HTML page languages_dict={"Java":"Java","JavaScript":"JavaScript","C":"C","C.2B.2B":"C++","C.23":"C#","COBOL":"Cobol","Haskell":"Haskell","Python":"Python","R":"R","Julia":"Julia","MATLAB_.2F_Octave":"Matlab","Pascal":"Pascal","Fortran":"Fortran","BASIC":"BASIC","Go":"Go","Ruby":"Ruby","SAS":"SAS","Stata":"Stata","Swift":"Swift","Processing":"Processing","UNIX_Shell":"UNIX Shell","VBA":"VBA","PowerShell":"PowerShell"} #store language names in an array language_name=[] #populate the array from the dict for item in languages_dict:language_name.append(languages_dict[item]) #get all tasks from Rosettacode.org url_task="//www.rosettacode.org/wiki/Category:Programming_Tasks" r = requests.get(url_task) soup = BeautifulSoup(r.text, 'html.parser') table=soup.find("div", {"class": "mw-category"}) #Create an empty dictionary to be filled with the tasks as they appear in the HTML source and name (as header) url_dict={} #get all links (a tags) tags=table('a') #iterate over tag list and fill the task/url dictionary for tag in tags: url_dict[tag.get('title',None)]=tag.get('href',None)[6:] #store task names in an array task_name=[] for item in url_dict: task_name.append(item) array_language=[] count=[] task="" #flask method to get the task the user wants to compare if request.method == "POST": # get url from task the user requested task = request.form['task'] url="//www.rosettacode.org/wiki/"+url_dict[task] r = requests.get(url) soup = BeautifulSoup(r.text, 'html.parser') dict_count={} for language in languages_dict: try: header=soup.find("span", {"id": language}) snippet=BeautifulSoup(header.find_next("pre").text, 'html.parser') dict_count[languages_dict[language]] = len(snippet.text) except: continue #sort dictionary for lang in sorted(dict_count, key=dict_count.get, reverse=True): array_language.append(lang) count.append(dict_count[lang])
当用户选择要比较的任务时,上面的脚本查找预先选择的语言并评估相应片段的长度(在HTML中相应的标题之后的“pre”标签内)。该脚本将结果存储在一个数组中,该数组将通过Flask发送到前端到我的Highcharts。
以下是与“ For循环 ” 对应的片段的结果数组:
# array_language ['C', 'Swift', 'Pascal', 'Go', 'BASIC', 'Haskell', 'UNIX Shell', 'Matlab', 'Processing', 'PowerShell', 'Fortran', 'Cobol', 'VBA', 'C++', 'Java', 'Julia', 'Ruby', 'JavaScript', 'Python', 'R', 'SAS', 'Stata', 'C#'] #count (length of the snippets) [90, 73, 144, 167, 70, 115, 400, 103, 103, 116, 1211, 533, 193, 104, 119, 71, 55, 114, 92, 85, 293, 79, 261]
然后这些数组将提供条形图。
Python和Flask使用和将数据数组发送到Highcharts 。在HTML页面呈现期间,服务器注入使用python构造的数组。请注意,我使用该选项来避免任何编码意外。{{ array_language | safe}}
{{count}}
| safe
Highcharts.chart('container', { chart: { type: 'bar' }, title: { text: 'Programming language comparison: {{task | safe}} ' }, subtitle: { text: 'Source: rosettacode.org' }, xAxis: { categories: {{ array_language | safe}}, title: { text: null } }, yAxis: { min: 0, title: { text: 'Task size (char)', align: 'high' }, labels: { overflow: 'justify' } }, tooltip: { valueSuffix: 'chars' }, plotOptions: { bar: { dataLabels: { enabled: true } } }, series: [{ name: '{{task}}', data: {{count}} }] });
我们现在有一种交互方式来比较执行许多任务所需的代码长度!要添加到图表中的一个很好的功能是将代码段显示为每种语言的工具提示。这将增强我们对Rosettacode的视觉探索。
购买Highcharts正版授权,请点击“”哟!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢