python 入门《基础知识1--python语言的特性概述》

19年暑假,留校在陈灯老师实验室里做一点openopse的工作,需要pyhton语言基础,于是一边学习一边上手。也是第一次写博客,作为自己的学习总结和记录。

PS:一个非常完整非常详细的python学习网站:http://www.pythondoc.com/pythontutorial3/appetite.html

一.环境搭建

    IDLE用的是pycharm;python3.6,pycharm的一个好处就是导包很方便直接在pycharm中搜索添加即可。 由于使用的家里的旧电脑,还是09年买的,CPU32位,导致出现了很多意料外的麻烦,各种不兼容各种错误,总之翻来覆去总算是搭建得差不多了。

         (1) 在搭建环境时,一个坑就是TensorFlow包不支持32位,浪费我很多时间,但还好并不是很影响工作,因为即使导包成功以一般电脑的配置也跑不起来openopse的代码。

         (2)在下载安装python3.6的时候,由于随意安装,下载了好几个python,到后来pycharm中找文件时总找不到,这也是提了个醒,下载时要注意下载位置。

         (3)在导包时,网上多是pip导包,按照网上的教程却无法解决。后来才发现别人用的都是Linux,我用的Windows。以后换新电脑一定要装Linux,熟悉命令行的操作。

二.python语言的特性

    之前学过C和C++,学习python的时候轻松很多。一边对比着C的联系来理解,一边找跟C的区别,大致一个星期左右就可以上手了。

1.python的缩进

    不同于其他语言,python使用缩进来表示程序块 ,而不是用传统的大括号,而且往往一般以4个空格缩进表示一层。或者用begin...end这样的字符来表示。(begin...end还没怎么用过,等以后再来填坑)。所以if语句,for语句等语句下面的函数体应当适当缩进。

PS:在pycharm中有时会出现某代码下面出现红色小波浪线,这往往是说明缩进没有对齐,可能就是那么一个空格的问题。另外,据说在换行时“只用4个空格表示缩进”或者“只用一个Tab表示缩进”都是可行的,但是如果“混着使用上述两者”就有可能报一些莫名其妙的错,而且从代码风格习惯上讲,也算是一个“陋习”。推荐是“仅使用4个空格表示缩进”。

2.python的序列 

    序列是python重要的语言特性之一,序列可以做运算(如:加法,乘法),可以切片,支持序列的复制和索引(可以负索引)。

3.python对各种编程模式的支持

    python是一种面向对象的编程语言,对比与C++而言,python并不追求彻底完美的面向对象语法,但对于类,对象,继承,私有,公有,多态,重载等都支持得很好,python的核心思想可以说是“万物皆对象”。但python并不强制要求我们用面向对象的方法来编程,它对面向过程的方法甚至函数式的编程方式的支持程度都很好。

4.python的动态性

    (1)语义的动态性

     就比如说,在C++中,int a = 1;然后a = "china"会报错,"字符串不能被赋值给一个int 类型“。但是在pyhton中

    a = 1 

    a = "china"

   是一点问题都没有的,这就是语义的动态性的一种体现,python中并不像C++中是声明一个int型的变量,再给这个变量赋值而是更偏向于理解为:有一个数值是1,把a与该数值“绑定”,或者说,让a指向该数值,给这个数值1取了个名字叫a,因此后面的a = "china",可以理解为:把原来的a“松绑”,并与字符串china绑定。更python一点的说法是:数值1是一个int型的对象(这里注意:在python中,int并不像C++中是一个内置的所谓"类型“  ,而是一个int类,有着相应的属性和方法),这个对象的对象名为a,而字符串"china"也是一个对象,一个str类的对象,后来把str类对象china改名为a。

    (2)语句的动态

    所谓语句的动态,是指python的代码可以作为参数传给python程序运行。

    如:sum = 2+3

           print("sum is : %s",sum)

    (3)对象属性的动态

    对象属性的动态是指可以动态的新增一个对象的属性、删除一个属性、使用getattr()得到一个对象的属性、使用setattr()来修改设置对象的新属性、使用delattr()删除对象的属性。

PS:需要注意的是,这里的修改设置、删除都是对某一个对象进行操作,而非对对象背后的类进行操作,被操作对象新增或删改一个属性,其对应的抽象的类并不改变。

    (4)基类的动态改变

    基类的动态改变是指,可以动态地改变一个类的继承基类、增加继承的基类,使一个类拥有新的基类方法,而且不用改变雨来的基类的方法。

5.支持异常处理

    支持异常处理是python的一个重要特性,能够对异常情况进行“捕捉”与相应处理。

6.python自省

     动态的,及时的对现有代码进行检查,知道有哪些对象、包、函数可以调用以及如何用等,这使得python编程的体验非常好。

7.匿名函数、嵌套函数等函数特性

8.支持流程控制和循环等

    与C++不同,python新增了好几个语句如while...True   ; if...elif...else;   for....else等

三、程序执行的原理

1.三大件

CPU:执行程序,进行计算,运算的地方

内存:临时存放数据(断电数据会消失),速度快

硬盘:永久存放数据,速度慢

2.程序执行原理

(1)程序在运行前,保存在硬盘中。

(2)当要运行一个程序时:

         操作系统会首先让CPU把程序复制到内存中, CPU执行内存中的程序代码

3.python程序执行原理

(1)同上

(2)当要运行一个程序时:

         1.操作系统会首先让CPU把python解释器的程序复制到内存中。

         2.pyhton解释器根据语法规则,从上到下,让CPU翻译python程序中的代码

         3.CPU执行翻译完成的代码

发布了37 篇原创文章 · 获赞 1 · 访问量 2748

猜你喜欢

转载自blog.csdn.net/qq_39685968/article/details/96870621
今日推荐