热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python实验心得_Python语言初学总结

课程名称:程序设计方法学实验1:程序设计语言工具时间:2015年10月21日星期三,第3、4节地点:理工楼

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

实验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.分析题目后所画出的程序流程图如下:

818082-20160715211705967-264465200.png

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.代码执行结果截图如下:

818082-20160715211834342-1014784295.png

五、实验结果和讨论

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

818082-20160715211849686-215035516.png

六、总结

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

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

(三)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语言的过程中查阅了不少线上线下的资料,遇到不会的东西,通过自己先查资料自己解决,这样印象深刻,渐渐总结经验,提高编程可复用性。



推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文深入探讨了Python中的高阶函数和Lambda表达式的使用方法,结合实际案例解析其应用场景,帮助开发者更好地理解和运用这些强大的工具。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了如何在Python中使用join()方法将列表中的元素连接成一个字符串。join()方法允许用户指定分隔符,从而灵活地生成所需格式的字符串。此外,我们还将探讨一些实际应用中的注意事项和技巧。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
  • 开发笔记:2020 BJDCTF Re encode
    开发笔记:2020 BJDCTF Re encode ... [详细]
  • 解决Anaconda安装TensorFlow时遇到的TensorBoard版本问题
    本文介绍了在使用Anaconda安装TensorFlow时遇到的“Could not find a version that satisfies the requirement tensorboard”错误,并提供详细的解决方案,包括创建虚拟环境和配置PyCharm项目。 ... [详细]
  • Python Django大学生心理健康管理系统开发(含源码、文档)
    本项目包含完整的源代码、设计文档、数据库结构以及详细的安装指南,旨在为计算机专业的学生提供一个全面的心理健康管理系统解决方案。 ... [详细]
author-avatar
菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有