Microcomputer Applications Vol. 35 ,No. 1,2019
文章编号!007-757X(2019)01-0116-03
教育探索
微型电脑% 用
2019 年第 35 )
第
1 期
将
Python作为入门程序设计语言的教学探究
白鱼秀
(榆林学院信息工程学院,榆林719000)
摘要:随着人工智能、大数据技术的发展,使得分析和运用数据成为面临的首要问题。传统的C/Java语言与数据分析较疏 远,已经不是最优选择。Python语言简单易学、效率高效,应用领域广泛,专注解决问题而不是语法本身,十分适合作为程序 设计语言的入门语言。以微信朋友圈个性签名为数据源,介绍了数据获取、数据分析和词云图展示,揭示了 Python在数据分 析方面的强大与便捷。P y t ho n语言作入门为程序设计语言可以大大激发初学者的学习兴趣,学习速度以及解决问题的效率。 关键词:Python;程序设计语言;教学研究;个性签名 中图分类号:TP311.5
文献标志码:A
BAIYuxiu
(School of Information Engineering,Yulin University,Yulin 719000)
Abstract: With the development of artificial intelligence and big data,a critical questiontraditional C/Java language is out of sync with data analysis,and is not an optimal choice. Python language is easy,efficient, and with widely application field. It focuses on solutions instead of the grammar,and is very suitable as an introductory programming language. This paper uses the personalized signature in WeChat as the data source to nalysis and word cloud presentation. It reveals the power and convenience of Python in data analysis. Using Python language as an introductory programming language can greatly stimulate the beginners learning interest,increase learning speed and the efficiency of solving problems.Keywords: Python; Program language; Teaching research; Personalized signature
0
引言
**在政治局第二次会议学习中强调,我们 应该深入了解大数据发展,推动实施国家大数据战略,加快 建设数字中国。印发《新一代人工智能发展规划》,鼓 励加快推动人工智能发展[1])全国计算机等级考试(NCRE)加入“Python语言程序设计”科目。Python应用领域广泛,市场需求不断上涨,大型门户网站积累了海量信息,提取有 价值的信息,应用于数据挖掘、海量数据分析。就业前景可 观[2],机器学习、AI工程师,搜索引擎工程师、数据挖掘/分 析工程师人才紧缺。
大学教学如何与时倶进,不被时代所淘汰,是每一个高 校教师值得思考的问题。程序设计语言作为计算机专业必 修课程和基本技能,注重培养学生计算思维能力[3],用计算 机解决问题的能力。
目前,普通高校都是以传统的C/C++或者Java作为学 生编程入门语言。虽然,C/C+ +和
佳选择,所以其教学改革势在必行。
Python作为一种可解释性语言,易学、易读、易维护,相 比较其他不少主流编程语言,Python容易上手[5],具有更好 的可读性,非常适合编程初学者作为入门语言。作为一种免 费开源语言,拥有丰富强大的第三方类库[6],可以高效的开 发各种应用;其扩展性、嵌入性和跨平台性也是其它语言所 不能相比拟的;并且拥有庞大的开发者社区和论坛,学习和 讨论知识更容易,便捷。
Research on the Teaching of Python Language as an
Introductory Programming Language
1
Python语言的优势
1.1 ! 析
随着人工智能、大数据和物联网等兴起,Python已成为 2017年最受欢迎的人工智能编程语言。人工智能+ Python 已应用于很多领域。谷歌无人机、小冰、IBM W苹果Siri和谷歌AlphaGo(阿尔法狗)等。
aston沃森、
Java语言一直占据计算
机编程语言数一数二的位置,但是,C/C+ +或者Java语言
兼顾性能采用较为复杂的语法规则*],不容易快速掌握。并 且,在当前人工智能、大数据和互联网+时代,它们不在是最
TIOBE排行榜能显示当下最热门、使用最多的编程语
言*7]。由图1中TIOBE排行榜中显示JAVA和C+ +热门 语言不同程度在下滑,唯独Python不断增长并上升到第+ 名的位次。2012年至2017年,Python已成为开发者使用增
的程 设计
。
作者简介:白鱼秀(1986-),女,榆林人,硕士,实验师,研究方向:程序设计、数据挖掘。
• 116 •
Microcomputer Applications Vol. 35, No. 1,2019
教育探索
徽型电胎%用
2019年第35 )
第
1期
表1 C语言实现两个数的求和
/ - C语言实现两个数的求和-/1 include〈stdio. h, main# $2
int numl,num2,sum;
printf# \"Please input the two numbers:\") %scanf#''%d%d\",h numl, & num2);sum= numl] num2 ;printf# \"sum is %d\ sum);
# 2语言分析3
表2 Java语言实现两个数的求和
//Java语言实现两个数的求和 import java. util. Scanner; public class HelloWorld {
public static void main(String args[]){Scanner sc = new Scanner (System, in);System, out. println# \"Please input the first number:\"); int numl = Integer. parselnt(sc. nextLineO);System, out. println# \"Please input the second number:\"); int num2 = Integer. parseInt(sc. nextLineO); int sum= numl+ num2 ;System, out. println# \"sum is \" +sum);33
表3 Python语言实现两个数的求和
1 python语言实现两个数的求和numl = input# \"Please input the first number:\")num2 = input# \"Please input the second number:\")sum= int(numl) +int(num2)print(’sum is Qsum)
表4 C/Java语言与Python语言的比较
P y t h 〇 n语言明确、优雅、简单。它的优点主要显现在以
下几个方面:
战略定位明确:简单严谨,易用专业,注重解决问题不是 语法本身。作为一名胶水语言,可以很方便的调用其它语言 编写的功能模块,结合形成简单强大的新程序。
软件质量高:Python简洁优雅,注重程序的可读性、一致 性。建立了面向对象程序编程思想,从而代码的可重用性、 可维护性更高。开发效率高:P y t h 〇 n语法简单,没有过多的条条框框的 语法规则,对程序员友好,容易上手。并且自带的各种模块 和丰富的第三方库,使得开发者只需要很少的代码量就可以 实现强大的功能。可移植性高:Python开发环境配置简单,Linux和
mac
和环境都内置了 python,程序不需要做任何改变,可以在不 同平台上直接运行。丰富强大的库:Python资源丰富,提供了强大的标准库 支持,包含了解决各种问题的类库,可以很容易的完成复杂 的编程问题,高效的开发各种应用。在数据抓取、数据分析 与展示等方面都拥有强大坚实的基础设施,建立了良好开放 的生态环境。
2
Python数据处理
大数据时代面临的首要机遇是如何分析和运用获取到 的海量数据。Python语言十分善于获取数据、分析数据和运 用数据。所以可以借助Python增强数据利用及其处理能 力,提高对大数据发展规律的掌握,使得数据在各项应用中 发挥作用。
2. 1数据输入输出
计算机程序主要是把用户输入按特定需求转换为输出 的过程,输入输出是计算机的基本功能。
分别用C语言Java语言和Python语言实现从键盘输 入两个整数,实现这两个数的求和。实现代码分别如表1,表 2,表3所TK。
由上比较可知,C语力JA
C
JAVA语言
Python
代码行数9行程序的入口地址
是 ma n 数变量必须先定义后使用
代码行数l2行程序的入口地址是ma n 数变量 定义使用
数4定义 数 直接运行
不需要预先定义,直接使用
不用考虑数据溢出。没有强制规定,若一■ 行包含多条语句,才 需要以分号结束使用相同的缩进
,
需要考虑数据
需要考虑数据溢出
溢出
每条语句必须要 每条语句必须要以 以分号结束分号结束语句块使用{3大 括号括号
使 用 {3
g
极大依赖程序员的自身编程能
VA语言语法冗长,体态臃肿,Python重视程序的可读
性、简洁性和一致性,抽象化了许多内容,让开发者专注于业 务逻辑而不是关心语法结构细节,代码行数少,用尽量少的代 码完成了更多的工作,更有利于学生入门上手,如表+所示。
2. 2数据分析
目前,微信是大家互相分享和聊天的一种生活方式。大 家会通过朋友圈分享有意思的文章与自己的生活。朋友圈比 较有意思的信息是各位好友的个性签名。我们以所有好友的 个性签名为数据源,爬取获得所有好友的个性签名信息。
•
ll
首先获取数据,借助Python的kchat库对所有好友的个 性签名数据进行获取。tchat库很好的兼容了微信个人账号 的API接口,使我们能便捷地获取微信的数据信息。但是由 于获得到的个性签名数据中存在很多表情符号等非文字信 息,所以需要对数据进行预处理处理,运用正则表达式替换 掉无关表情和符号,最终获得所有好友的个性签名纯文本内 容信息,代码实现如表5所示。
7 •
Microcomputer Applications Vol. 35, No. 1,2019
表5获取朋友圈个性签名信息
1微信好友个性签名数据获取清洗import itchat import re itchat. loginO
friendLitt = itchat. get_friends(update= True) [1 : + signatureLitt = [+
for friend in friendList:
signature = friend* \" Signature\"], replace# \" \" , '\"’). replace ( span\" , \"\"). replace# \"class\" , \"\"). replace# \"emoji\rep = re. compile# \" lf\\d.]\") signature = rep. sub( \"\" , signature) signatureList. append(signature)
由上可见,只需要10行代码即可完成所有好友个性签 的数据 难!
与清洗。而C/Jaa
很
完成此操作 成
f
教育探索
徽型电胎%用
2019年第35 )
第
1期
表6朋友圈个性签名词云图
1微信好友个性签名词云图
text =\"\". join(signatureList) 1 拼接字符串import jieba 1 jieba 分词signaturelist_jieba = jieba. cut(text,cut_all= True) signatures = \" \". join(signaturelist_jieba)
困
1 wordcloudimport matplotlib. pyplot as pit
from wordcloud import WordCloud,ImageColorGenerator import numpy as np import PIL. Image as Image import osd= os. path. dirname(os. path. abspath( __file__ )) background_pic = np. array(Image. open(os. path. join(d, \"four- leaf-clovers. jpg\")))
signature_wordcloud = WordCloud(background_color =\"black\",max_words= 2000,1词云显示的最大词数
mask=background_pic,1 设置背景图片 max_font_size=100,1 字体最大值 random_state= 40,font_path = yfont/simhei. ttf〇 . generate(signatures ) image_colors = ImageColorGenerator (background_pic ) pit. imshow(signature_wordcloud. recolor(color_func= image_cof-orsplt. imshow(signature_wordcloud ) pit. axis( \"off\") pit. showO
signature_wordcloud. to_file(wordcloud. jpg)
3
总结
1背景颜
用底层驱动程序。同样,C/Java读取、分析Excel
用的数据分归、分类、聚
的
数据特别复杂,而Python
析库,如Pandas等,可以很方便的读取Excel、Cv和Sql等
数据。并且Sckk-Leam机器学习库 类等强大的数据挖掘算法! 数据挖掘分析。
2. 3数据可视化
Python提供了丰富的用户交互界面,可以直观的了解数
的数据
据 态。提供了很 制图形的 库,比如强大的可
库、函
的过程。,是对文本中出
I到
化matplotlib库! 三维图形。程序员 数功能的调用,省
我 友
的数据拼接成
wordcloud库函数绘制
制散点图、折线图、条形图等二维加载、调用,即 己 得的
量复杂底
据 信息数据,绘制微信好化突出展示。首先把
图。词云图,又称为文
,
频率较高的“关键词”的
Python有效的
。在数据 的
高性能与
用!
程序简单 的特
jieba , 用
出、数据分析和数据 化方面,用较少
的提高学生
学习其
的词云图,最终所生成词云图如
完成某些复杂的
定基础。
图2所示。
的学习兴趣、热情! 程序设计
程序产生乐趣!
'致_齡||__活5
茜安:入芏事情.1
杯子圈
参考文献
*1+ .关于印发《关于印发新一代人工智能发
展规划》的通知[EB/OL]. [2017-12-22 ].
到达m
_今 卜1 •喜欢
篆,尽、味
[2] [3] [4] [5]
微笑^ W
图2朋友圈词云图
[6]
! !
6 所 。
此外,我们可以根据自己的兴趣,获得朋友圈其它信息, 例如性别、地区等信息,分析微信好友男女比例和地、布等并进行图形展示。
• 118 •
http://
www. gov. cn/zhengce/content/2017-07/20/content _ 5211996. htm.嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改 革的理想选择[J].中国大学教学,2016(2) :42-47.冉娟,.学院非计算机专业Python程序设计 课程教学改革 [J]计算机教育,2017(9)15-20.刘卫国,奎晓燕.Python语言程序设计教学体系建设 [J]计算机教育,2017(8) :13-17.秦科! .面向Python应用的大学教学改革初探[J]计算机教育,2017(9) :21-25.
陈衍鹏.基于Python第三方库实现Excel读写[J].微
型电脑应用,2017(8)75-78.
[7] 江红,余青松.
:
Python程序设计与算法基础教程[M].
,
学 2017.
(收稿日期:2018. 01.01)