Python笔记


目录

对编程的认识

1.编程思想

2.编程语言

初步学习计划

1.什么是python?

2.Python特点

3.Python性质

4.Python 发展历史

基础知识了解(笔记)

1.基础操作

2.列表

3.If语句

4.字典

5.用户输入和while循环

6.函数

7.类

8.文件与异常


对编程的认识

       编程就是编写程序,使用各种不同的语言编写计算机能看懂的程序,并让它运行,编程分为面向对象和面向过程,还有很多不同的语言。


1.编程思想

面向过程是一种以过程为中心的编程思想。它主要关心的是一个事件,一个过程,而不是事物本身。
面向对象与面向过程不同,关注的是对象本身,注重构建一个对象。


2.编程语言

      编程语言众多,主要分为机器语言,汇编语言,高级语言

      现在主要使用的是高级语言,高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的Java、C、C++、C#、Pascal、Python、lisp、Prolog、FoxPro、易语言、中文版的C语言习语言等等,这些语言的语法、命令格式都不相同
     1.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言,被称为高级语言之父。
     2.C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
     3.Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
      上面这3门语言就算是编程语言中的半壁江山了。
      现在计算机里那些越来越简便的工具,用编程来发挥计算机的能力,然后用计算机来辅助人们,工作、生活、学习等等


初步学习计划

1.什么是python?

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,它具有比其他语言更有特色语法结构。


2.Python特点

易于学习、易于阅读、易于维护、一个广泛的标准库、互动模式、可移植、可扩展、数据库、GUI编程、可嵌入。
1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读:Python代码定义的更清晰。
3.易于维护:Python的成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
8.数据库:Python提供所有主要的商业数据库的接口。
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。


3.Python性质

(1)Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
(2)Python是交互式语言:这意味着可以在一个Python提示符后直接执行代码。
(3)Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
(4)Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到浏览器或网站以及游戏。


4.Python 发展历史

        Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。

Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

Python 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。


基础知识了解(笔记)

1.基础操作

Print():打印出来        

变量:变量是可以幅给值的标签,也可以说变量指向特定的值。

字符串就是一系列字符,在python中,被引号括起来的都是字符串。(单双引号无所谓)

f字符串:要在字符串中插入变量的值,要在引号前面加上f。也可以直接用+号。

注:title()是以首字母大写的方式表示每个单词;

upper()是将单词全部大写;

lower()是将单词全部小写。                      

\t制表符(缩进);

\n换行符;

删除空白的三个方法:rstrip()表示删除末尾的空白

                                    lstrip()表示删除前面的空白

                                    strip()表示删除两边的空白。

其中想要永久删除字符串中的空白,必须将删除操作的结果关联到变量。

单双引号引起的语法错误(SyntaxError)。                

整数和浮点数:带小数点的数叫做浮点数。

注:数中的下划线是为了数字分组,并不会被打印出来;

要想将特定的变量视为常量,可将其中字母全部大写;

Python之禅告诉我们:避繁就简原则 


2.列表

在python中,用方括号([])表示列表,元素间用逗号隔开。

  1. 访问列表:print(变量[索引])

           索引从0开始而不是1。

     2.修改列表:变量[索引] = ‘新元素’

append()在列表末尾添加元素;

insert()在列表中插入元素,其中括号(位置,‘插入元素名称’);

del 表示从列表中删除元素,不在使用它

pop()表示删除末尾的元素,并可以单独使用它

pop(索引)表示弹出列表任意位置的元素;

remove (‘元素名’)表示列表中第一个指定的元素,如果在列表中出现多次,就需要后面学的循环。              

sort()表示对列表永久按字母顺序排序;

sort(reverse=True)表示与字母相反的顺序排序;

注:方法(一般直接是代码)的使用:cars(文件名). sort(reverse=True) 表示与字母顺序相反的顺序排序;

函数(一般都会有函数字样)的使用:print(numbers(文件名),reverse=Ture)表示与字母顺序相反的顺序排序;

函数sorted()——表示对列表临时排序,不影响原始排列顺序;

reverse()——表示反转列表;

函数len()——确定列表长度;

3. 使用列表时避免索引错误(IndexError),当发生索引错误而找不到办法时,尝试打印列表长度,这属于逻辑错误                

4. 首次使用for循环遍历列表;

使用for循环,循环的部分需要缩进,避免缩进错误(IndentationError.),这是一种逻辑错误。减少不必要的缩进,其中for循环中务必不能忘记冒号        

函数rang()表示可以生成一系列数,遵循的是差一原则。如:range15)打印出来没有5

使用range()创建数字列表,其中用到了函数list(),可将数组转换成列表,其中range()可设置第三个参数。如even_numbers=list(range(2,11,2))意思就是从2开始不断加2且不超过11

对数字列表进行简单的统计计算,如minsummax

易阅读版——简洁版——列表解析的应用。

5. 定义:使用列表部分元素——切片

切片的索引也遵循差一原则;如printplayers[0:3])从第一个开始到3-1个结束;

遍历切片:可在for循环中使用切片;

复制列表:创建一个包含整个列表的切片,方法是[:];不使用切片的方法复制列表是不行的。                                      

6. 元组:不可变的列表,使用圆括号来标识(非中括号),严格意义上说,元组是由逗号标识的,即使只有一个元素也要加上逗号;

打印元组的元素与访问列表元素方法一致;

遍历元组中的所用值,使用for循环;

修改元组变量:虽然不能直接修改元组的元素,但可以给存储元组的变量赋值;

如果需要储存的一组值在整个生命周期内都不变,就可以使用元组。       


3.If语句

        0.条件测试:检测是否相等(=);

          Python中检测是否相等时区分大小写(用upper()、title()、lower());

          检测是否不等(!=);

          使用and/or检测多个条件的不同;

          检测特定值是否(不)包含在列表中,innot in

          布尔表达式。

  1. 简单的if语句
  2. If-else结构
  3. If-elif-else结构,其中可以使用任意数量的elif代码块
  4. 省略else代码块,因为python并不要求if-elif结构后面必须有else代码块
  5. 测试多个条件:如果想执行一个代码块,就使用if-elif-else结构;

              如果要执行多个代码块,使用一系列独立的if语句。

     6.使用if语句处理列表:检测特殊元素——for循环中包含一条if语句;

                    确定列表是否为空很重要;

                    使用多个列表。


4.字典

是一系列键值对,每个键与一个值相关联。(键值对是两个相关联的值)

      字典用放在花括号({})中的一系列键值对表示。

1.使用字典:访问字典中的值——指定字典名和放在方括号([])内的键;

          创建空字典,添加键值对;

          修改字典中的值;

          彻底删除键值对用del

          使用get()来访问值:用常规方法访问字典中没有的值,往往会出现键值错误(KeyError,但通过get()的方法可以避免这种错误。get(‘第一个参数:指定值第二个参数:如果不存在,指定默认值’)

2.遍历字典:遍历所有键值对——for循环时用到方法items();

          遍历字典中的所有键——for循环时用到方法keys() 注:虽然用不用效果一致,但是这样写会让人更容易理解

          对字典中的所有键特定排序——for循环中调用了函数sorted();

          遍历字典中的所有值——for循环时用到了方法values();

          为了解决字典中重复项(值)的问题——for循环时调用了set(),这个也叫集合,集合中的每个元素都是独一无二的。

          创建集合——使用花括号({})直接创建;注:字典和集合很容易混淆,因为它们都是用一对花括号定义的。例见:遍历列表.py

3.嵌套:在列表中嵌套字典,在字典中嵌套列表甚至在字典中嵌套字典。

      字典列表——列表中嵌套字典;

      在字典中储存列表;

      在字典中存储字典。(建议每个用户的字典都具有相同的结构,使得处理起来比较容易)。


5.用户输入和while循环

1.函数Input()——让程序暂停运行,等待用户输入一些文本;

函数input()接受一个参数——要向用户显示的提示(prompt)或说明;

一种创建多行字符串的方式——如果提示超过一行,使用运算符+=——在上一行字符串的尾部附加一个字符串;

使用函数int()来获取数值输入;

求模运算符(%)——两个数相除返回余数。

2.While循环——for循环用于对集合中的每一个元素都执行一个代码块,而while循环则不断运行;

让用户选择何时退出——定义一个退出值(quit,创建空字符串(用于记录用户输入的值);

使用标志——在要求多条件都满足才能继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量就称为标志(flag

使用break退出循环——任何循环中都可使用;

在循环中使用continue——让python忽略余下的代码,并返回循环的开头

避免无限循环。   

3.使用while循环处理列表和字典——为了记录大量用户信息;

在列表之间移动元素——使用while循环,方法pop()从列表末尾删除元素,方法append()在列表末尾添加元素,for循环来遍历列表;

删除列表中的特定所有元素——使用while循环remove(‘要删除的元素’);

使用用户输入来填充字典——使用标志,whlie循环,在字典中添加元素,条件测试if语句for循环遍历字典以及方法items()分开获取。


6.函数

1.定义函数:函数定义——def,勿忘冒号;

          文档字符串docstring)——用三个引号括起来,文档字符串的注释描述了函数是做什么的。Python使用这些来生成有关程序中函数的文档;

          向函数传递信息;

          实参和形参。                

2.传递实参:位置实参——实参和形参顺序必须相同;

          关键字实参——无须考虑实参顺序;

          默认值——先列出没有默认值的形参,再列出有默认值的实参;

          等效的函数调用;

          避免实参错误TypeError)。  

3.返回值: 定义——函数返回的值;

         return——将结果返回到函数调用行

         让实参变成可选的——使用默认值;

         返回字典;

         结合使用函数和while循环。  

4.传递列表: 定义——定义一个遍历列表的函数,然后输入列表调用函数;

           在函数中修改列表——将列表传递给函数后,函数就可对其进行永久性修改,这使得能够高效的处理大量数据;

           禁止函数修改列表——调用函数时,使用切片的方法创建列表的副本,不影响原始的列表。          

5.传递任何数量的实参:python允许函数从调用语句中收集任意数量的实参;

                    *形参名——让python创建一个名为(形参名)的空元组

                    综合使用位置实参和任意数量实参——将接纳任意数量实参的形参放在最后;

                    **形参名——让python创建一个名为(形参名)的空字典

                    使用任意数量的关键字实参——将函数编写成能够接受任意数量的键值对;

注:通用形参名*args——收集任意数量的位置实参;

通用形参名**kwarga——收集任意数量的关键字实参。

 6.将函数存储在模块中:模块——存储函数的独立文件;

                    导入整个模块——import +模块名——打开文件,将所有函数复制到程序中;要调用这个函数:模块名.函数名();

                    导入特定函数——from 模块名 import 函数名——表示从模块中导入函数;

                    使用as函数指定别名——from 模块名 import 函数名 as+别名;

                    使用as模块指定别名——import 模块名 as+别名;

                    导入模块中的所有函数——使用(*)星号运算符可让python导入模块中的所有函数。from 模块名 import+星号(*);

                    最佳导入做法——要么只导入需要使用的函数,要么导入整个模块并使用句点表示法(模块名.函数名())。

7.函数编写指南: 函数的描述性名称;

               函数的功能的注释;

               形参指定默认值时,等号两边无空格;

               Import语句都应放在文件开头。


7.类

1.创建和使用类:使用类几乎可以模拟任何东西,本次使用的是Dog

              定义类——class+类名:的形式;其中首字母大写的名称指的是类,而小写的名称指的是根据类创建的实例;

              类中的函数称为方法——__init__()是一种特殊的方法,两边分别有两个下划线;因为就有了定义方法。也是定义函数,本质一样;

              self是一个指向实例本身的引用,让实例能够访问类中的属性方法

              通过实例访问的变量称为属性

              访问属性——句点表示法;

              调用方法——用句点表示法来调用类中定义的任何方法;

              创建多个实例。   

2.使用类和实例:本次使用的是Car类;

              给属性指定默认值——有些属性无须通过形参定义,可用方法__init__()中为其指定默认值——也就是直接添加一个属性=默认值即可;

  修改属性的值(方法有三种)—(1.直接修改属性的值(最简单的方式):通过实例直接访问;

                                                    (2).通过方法修改属性的值:可增加一个逻辑,禁止任何人将里程表回调(if-else结构);

                                                    (3).通过方法对属性的值进行递增——使用运算符(+=)。可增加一个逻辑,禁止增量为负数(if-else结构)。

3. 继承:定义——一个类继承另一个类,将自动获得另一个类的所有属性和方法,原有的类称为父类,而新类称为子类;定义子类时,必须在括号内指定父类的名称;

          Super()是一个特殊的函数,让你能够调用父类的方法;父类也称为超类superclass);

          给子类定义属性和方法——添加属性,定义方法;

          重写父类的方法——在子类中定义一个与要重写的父类方法同名的方法,这样,python不会考虑父类方法,而只关注你子类中定义的方法;

          将实例用作属性——可能需要将类的一部分提取出来,作为一个独立的类;也可能需要将大型类拆分成多个协同工作的小类。

4.导入类:导入单个类——from+模块名+import+类名——import语句python 打开模块并导入其中的类;

           在一个模块中存储多个类——一个模块中可以存储任意数量的类;

           从一个模块中导入多个类——导入多个类时,用逗号分隔各个类;

           导入整个模块——import+模块名——使用句点表示法访问需要的类;

           导入模块中的所有类——不推荐这种方式;

           在一个模块中导入另一个模块;

           使用别名——from+模块名+import+类名 as+别名。

           模块导入模块.py car.py electric_car.py                      

5.Python标准库:定义——它是一个模块;

              模块random中函数randint()——两个整数作为参数,并随机返回一个位于这两个整数之间的整数;

              random中函数choice()——将列表和元组作为参数,并随机返回其中一个元素。


8.文件与异常

1.从文件中读取数据:读取整个文件——函数open()、close()——打开关闭文件;方法read()——读取这个文件的全部内容;

                  文件路径——绝对文件路径(准确路径);



注:显示文件路径时,Windows系统使用反斜杠(\)而不是斜杠(/),但在代码中依然可以使用斜杠。例如:对于路径“C\path\to\file.txt,\t将被解读为制表符,如果一定要用的话,可对路径中的每个反斜杠都进行转义,如:“C\\path\\to\\file.txt”。

                  逐行读取——将要读取的文件名称赋给变量,通过对文件对象执行for循环来遍历文件中的每一行;

                  创建一个包含文件各行内容的列表——方法readlines()从文件中读取每一行,并将其存储在一个列表中。

                  使用文件内容——创建空字符串,用到了运算符(+=

注:读取文本文件时,python将所有文本都解读为字符串,如果读取的是数,并要将其作为数值使用,就必须使用函数int()将其转换为整数或使用函数float()将其转换为浮点数。

                  包含一百万位的大型文件;

                  圆周率中包含你的生日吗——用到了input()和if条件语句;

                  方法replace()——将字符串中的特定单词都替换为另一个单词。       


自己总结的Python学习笔记!有很多不足请体谅!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐