课程名称:程序设计方法学

实验1:程序设计语言工具

时间:2015年10月21日星期三,第3、4节 地点:理工楼1#208

一、实验目的

1、深入理解程序设计语言及其几种常见的编程范型;

2、激发学生对编程语言的兴趣;

3、培养学生的自学能力。

二、实验内容

学习一门新的程序设计语言(不能是已经学习过的C\C#\C++\JAVA\PASCAL),通过使用该门语言编程,解决一个实际问题。

要求:

1.实验报告中应首先详细说明待解决的问题、你所使用的语言以及选择的开发环境;

2.实验报告中应附上完整的源代码(有对应的设计图表,如流程图等请一并附上),以及在本地计算机上调试、运行该程序的截图(要求截图的结果中能体现个人的学号、姓名等信息)。

3.结合上述解题过程,简要说明该语言的特点(如其支持的编程范型及语法特性等)和你使用该语言的心得体会。(要求500字以上)

三、实验环境

硬件条件:微型计算机

操作系统:Windows 7 操作系统

开发环境:PyCharm (Python IDE集成开发环境)

四、实验步骤和结果

(一)待解决的问题描述

输入若干学生的信息(信息包括:学生姓名、学生成绩、学生性别),然后根据学生成绩对学生进行排序,按成绩由高到低输出学生信息列表。

(二)解决该问题所用的语言

Python 语言(基于 Python 2.X 版本)

(三)选择的开发环境:

PyCharm (Python IDE集成开发环境)

(四)解题过程的实验操作步骤

1.分析题目后所画出的程序流程图如下:

2.在集成开发环境“PyCharm”上的代码实现如下:

#-*-coding:utf-8-*- # 此语句的作用是:让py源文件里面可以有中文

classStudent(object):#自定义一个Student类,包括学号、姓名、分数、性别等信息

def __init__(self,number, name, score, sex):#初始化Student,参数 number,name,score,sex

self.number =number

self.name=name

self.score=score

self.sex=sexdef __cmp__(self, other):#重写比较方法,根据Student类属性score进行比较

returncmp(self.score, other.score)defshow(self):return 'number:'+self.number+'name:'+self.name+'; score:'+str(self.score)+'sex:'+self.sexdef get_input(): #获取控制台的输入

number = raw_input('Please input number :')if not number: #当学号输入为空时,返回None

return(None,None,None,None )

name= raw_input('Please input name :')

score= raw_input('Please input %s\'s score :' %name)

sex= raw_input('Please input %s\'s sex :'%name)if number and name and score andsex:return (number, name,int(score),sex) #为方便比较,将score强制转换为int型

else:return(None, None, None, None)defmain():

s_list=[]while True: #一直循环输入【学生的学号、姓名、成绩及性别】

number, name, score, sex =get_input()if number and name and score andsex:

s=Student(number, name, score, sex)

s_list.append(s)else: #当输入姓名或成绩为空时跳出循环

breaks_list.sort(reverse=True) #对Student实体进行排序(reverse=True表示逆序排序,即从大到小排序)

print("排序列表如下所示:")for i, s in enumerate(s_list): #遍历已经排序的实体列表,并进行显示

print ' '.join([str(i+1), s.number, s.name, str(s.score), s.sex])if __name__ == '__main__': #调用主函数

main()

3.对上述代码的相关说明

(1)在代码首行输入了:#-*-coding:utf-8-*-的原因:

py文件当中是不支持中文的,即使输入的注释是中文也不行,为了解决这个问题,就需要把文件编码类型改为UTF-8的类型,输入这个代码就可以让PY源文件里面有中文了。而且注意要写在所有代码的第一行。

(2)关于函数的定义:

①关键字def用于告诉Python,正在定义一个新的函数。

②类中的函数名称两边有下划线(如:__init__)。这种特殊方法意味着,当创建新的对象时,该方法就会被调用,就可以把我们自己的类型变成Python的内置类型那样了,此即提高了程序的可读性。

③函数定义的参数列表中有自动的self,这样当Python在调用某个对象中的某个方法时,会自动将该对象的引用作为该方法的第一个参数传进去,然后我们就可以在该函数中访问该对象的实例变量了(即在相应的变量上使用点运算符)。所以,关于self的规则就意味着,当我们在定义一个方法时,除了实际需要传入的那些参数之外,还必须再多写一个。相反,当我们在调用某个方法时,实际提供的参数要比该方法定义中所需的少一个才行。最重要的一点是需要将self放在成员变量之前。

(3)Python自带一些预定义的函数,成为内置函数(built-in),上述代码中使用raw_input内置函数来从键盘上读取一行文本。“raw”意味着它将以字符串的形式返回用户输入的一切内容,哪怕有些内容看上去像是一个数字。如果希望用户输入一个数字,那就必须用int或float将得到的字符串转换为所需的类型。

(4)s_list.sort(reverse=True)是对Student实体进行排序(reverse=True表示逆序排序,即从大到小排序;若reverse=False则表示是顺序排序,即从小到大排序)。

4.代码执行结果截图如下:

五、实验结果和讨论

通过分析问题,画出了相应的流程图,编写代码实现,调试运行代码后得到的示例结果截图如下所示:

六、总结

(一)本次实验按时按量完成。通过实验基本掌握了新的一门程序设计语言。

(二)本次实验使我深入理解了程序设计语言及其几种常见的编程范型;也、激发了我对编程语言的兴趣;而且很大程度的提升了我的自学能力。

(三)Python 语言的特点:

1.Python是一种面向对象、解释型的计算机程序设计语言。

2.Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。

3.Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

4.Python具有丰富和强大的库。

5.Python常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起,能够跨平台使用。

6.Python三大优点:简单、功能强大、支持面向对象。

7.Python支持命令式编程、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。

(四)使用Python 语言的心得体会

Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的很多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

首先Python 语言是一门脚本语言。Python在设计上坚持了清晰划一的风格,简洁优雅,没有了大括号,没有了分号,使得Python变得非常的整洁。而且它是一门易读、易维护,可移植性非常好,可以在linux、windows、苹果等多种操作系统上运行,并且被大量用户所欢迎的、用途广泛的语言。Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这就是Python给我的有很严格的缩进规则的感觉。

其次Python 语言是一门动态语言。在命令行下面输入一个1+1,回车之后就能给个2的结果。不要编译连接等步骤,一边写代码一边就可以有结果。不过在此我更是觉得Python语言或许更适合作为一门入门语言。首先从语法上讲,Python语言比现在很多作为第一编程语言 (C/C++、Visual Basic等)要简单很多。其次,这种解释语言的机制,更能让我们这些初学者体验到学习成果,不需要了解很多东西,也能编出个小程序来,这个过程比其他语言要快和简单很多。再次,从我们自学的角度来讲,搭建Python的基础开发环境也很简单,只要安装一个十几兆的程序,就得到了一个命令行工具,一个简单的GUI的IDEL,还有其他文档等,这样就不必把时间太多用在开发工具上了,它不像学习C++等这些语言还要去逐步熟悉Visual C++等工具。此外,还有一点就是Python的学习很有弹性,我稍微学一点就能做点东西,而想要深入研究仍然有无穷的方向可以选择,因为Python的应用范围也是很广阔。

最后,Python 是强类型的。为变量指定数据类型称为“强类型”。Python有一个统一的、明确的、强大的类型系统,比Java的类型系统更强,而且Python的这种强类型是属于动态型的强类型。

真正的学习其实是在自己写应用脚本或程序的时候,在写的时候肯定会有不明白的东西,这就需要去网上查资料,一来二去就明白了。学习Python语言的过程中查阅了不少线上线下的资料,遇到不会的东西,通过自己先查资料自己解决,这样印象深刻,渐渐总结经验,提高编程可复用性。

python实验心得_Python语言初学总结相关推荐

  1. python实验心得_Python的学习心得

    首先很庆幸自己选到了这门个性化选修课,可能是我个人比较认为这门课程所用的语言很特别很奇妙,老师也很有趣,能让我们更好的了解Python这门课程真正的用途.在学习Python这门课程的这段时间以来,并且 ...

  2. 大学生python实验心得体会_大学生实验心得

    作为一名大一的学生,在学校里做计算机实验,结束后,有哪些感悟呢?下面是由出国留学网小编为大家整理的"大一计算机实验心得",仅供参考,欢迎大家阅读.第一次实验是双绞线的制作,通过这个 ...

  3. 大学生python实验心得体会_大学生实验心得体会精选例文【三篇】

    大学生实验心得体会精选例文[三篇] 通过该实验,对所学的知识有了进一步的了解.在实验的过程 中,出现了一些问题,不过最后都得以解决.不过通过这些错误,使 我对这些知识点更加印象深刻. ERP 是一门十 ...

  4. 大学生python实验心得体会_最新大学生实验心得体会范文汇总

    大学生实验心得体会范文汇总 实验讲授有助于培养学生求真务实的科学精神.学习不仅需要智力. 能力 , 更需要求真务实的科学精神.下面给大家分享一些关于学生实 验心得体会 , 方便大家学习. 学生实验心得 ...

  5. c和python的优缺点_Python语言有什么优缺点?

    在很多人眼中,Python是一门全能语言,可以做很多的事情,那么你知道Python有什么优缺点吗?我想这是很多人都比较好奇的问题,我们一起来看看吧. 优点: Python是一种代表简单主义思想的语言, ...

  6. 大学生python实验心得体会_大学生实验心得与感悟范文5篇

    实验是检验真理的标准,因此实验所带来的意义不可估量.接下来是小编为大家整理的大学生实验心得与感悟范文5篇,希望大家喜欢! 大学生实验心得与感悟范文1 一直以来都觉得数学是门无用之学.给我的感觉就是好晕 ...

  7. python实验心得体会范文大全_实验心得体会四篇

    实验心得体会四篇 <实验心得体会四篇>是一篇好文章,感觉写的不错,这里给大家转摘到, 觉得好就请收藏下. 小编精心推荐 | | 下面是小编整理的实验,欢迎阅读参考. 实验心得体会 ( 一 ...

  8. python语言程序设计实践教程答案实验六_Python语言程序设计实验指导与习题--详细介绍...

    上机实践是学习程序设计的重要教学环节.只有通过上机实践,才能真正理解程序设计的基本思想,正确灵活地使用语言中的各种要素,熟练掌握各种集成开发环境的应用和编写.调试程序的方法,从而获得应用程序设计解决实 ...

  9. python函数实验心得_python学习心得

    慕课网学习过程中,发现了很多有意思的高阶函数: reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map( ...

最新文章

  1. [Linux内核]软中断与硬中断
  2. 取java.sql.date日期_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...
  3. Spring框架第一天知识总结
  4. JS数组的迭代器方法
  5. Spark 机器学习中的线性代数库
  6. laravel route函数 404_laravel生成及获取不同类型的URL地址总结
  7. Reporting Services Internal Error(诡异的问题)-【转载】
  8. 各种开源项目/库/工具介绍
  9. linux编辑器终端,分享|尝试将 Jed 作为你的 Linux 终端文本编辑器
  10. java对话框进度条_java进度条
  11. 二阶系统级联_二阶系统时域特性.ppt
  12. 构建人人网社会化推荐引擎
  13. HTML5游戏实战 1 50行代码实现正面跑酷游戏
  14. linux查看文件打开限制,Linux最大文件打开数使用经验详解
  15. 虚幻引擎图文笔记:使用MixamoConverter对Mixamo动画重定向成UESkeleton匹配动画
  16. 《艾尔登法环》雷亚卢卡利亚结晶坑道的位置
  17. android通讯录完整功能实现,Android实现通讯录功能
  18. 【原创】关于联想Y400适配器和电池同时使用无法开机的问题
  19. oracle pns配置,Oracle
  20. 爱奇艺视频版权保护技术与维权实践

热门文章

  1. 图像解析力算法—SFR(Spatial Frequency Response)原理分析(一)
  2. 武汉第二中学2021年高考成绩查询,武汉市第二中学录取分数线及成绩2020
  3. python制作生日礼物_Python全国少儿编程竞赛参赛作品《智能生日提示小助手》解析...
  4. 今天的东方时空主题是什么?
  5. 经验性理论与规范性理论的差别
  6. 1952. 金发姑娘和 N 头牛
  7. PRM算法三维地图matlab仿真
  8. refind linux内核参数,使用rEFInd实现OpenWRT / LEDE支持UEFI GPT启动
  9. Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation翻译
  10. Hbase 数据导出到文件中