没有找到合适的产品?
联系客服协助选型:023-68661681
提供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@ke049m.cn




注意: Cogent DataHub 软件 v11 包含一些新功能,您的目标操作系统可能不支持这些功能。
本教程主要为大家介绍如何使用DevExpress WinForms数据网格控件进行数据排序的基础知识,欢迎下载最新版组件体验!
在使用Parasoft C/C++test执行BugDetective数据流分析时,可能会遇到用户自定义的资源API,那在这种情况下,若要判断是否存在资源问题,如资源泄露等,则需要手动配置测试配置。
大型SaaS系统的自动化测试常常受制于界面变化快、结构复杂、加载机制多变等因素。从元素识别到脚本管理,SmartBear TestComplete帮助Salesforce建了可靠的自动化测试体系。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营