博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python语言初学总结
阅读量:5738 次
发布时间:2019-06-18

本文共 4548 字,大约阅读时间需要 15 分钟。

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

实验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源文件里面可以有中文class Student(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 = sex    def __cmp__(self, other):    # 重写比较方法,根据Student类属性score进行比较        return cmp(self.score, other.score)    def show(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 and sex:        return (number, name,int(score),sex)  # 为方便比较,将score强制转换为int型    else:        return (None, None, None, None)def main():    s_list = []    while True:  # 一直循环输入【学生的学号、姓名、成绩及性别】        number, name, score, sex = get_input()        if number and name and score and sex:            s = Student(number, name, score, sex)            s_list.append(s)        else:  # 当输入姓名或成绩为空时跳出循环            break    s_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 将得到的字符串转换为所需的类型。

 (4s_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变得非常的整洁。而且它是一门易读、易维护,可移植性非常好,可以在linuxwindows、苹果等多种操作系统上运行,并且被大量用户所欢迎的、用途广泛的语言。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语言的过程中查阅了不少线上线下的资料,遇到不会的东西,通过自己先查资料自己解决,这样印象深刻,渐渐总结经验,提高编程可复用性。

 

转载地址:http://lmyzx.baihongyu.com/

你可能感兴趣的文章
php curl send_http function
查看>>
sql server常用语句总结
查看>>
ERR_OUT: : Bad address
查看>>
redis的简单使用和介绍
查看>>
Lucene小记(入门篇),索引创建、更新、删除、查找等操作。
查看>>
PowerDesigner PDM 复制comment到name
查看>>
成员变量和属性
查看>>
微信开发经验待整理
查看>>
雷观(五):认准的事情,要做就做到极致
查看>>
Kubernetes Scheduler源码分析
查看>>
PHP中使用MongoDB开发实践体会
查看>>
第十讲---关于微服务架构
查看>>
Proxy遇到Decorator
查看>>
MySQL Index详解
查看>>
【HTML】DAY 2
查看>>
使用Nodejs进行反向代理
查看>>
rac drop database 命令行
查看>>
让我们一起摇摆 Turnipbit体感遥控车
查看>>
安装suds报错,ImportError: No module named client
查看>>
Qt5 简单音乐播放器(进击版1)
查看>>