【黑马-python】---学习笔记(2)---Python基础

Python基础

1 Python简介

1.1 python起源

  • 1991年第一个Python解释器诞生,用C语言实现,并能够调用C语言的库文件;

  • 开源

1.1.1 解释器(科普)

  • 计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序,将其他语言翻译成其他机器语言的工具,被称为编译器;

  • 编译器翻译的方式有两种,一个是编译,另一个是解释,两种方式之间的区别在于翻译时间点的不同,当编译器以解释方式运行的时候,也称之为解释器;
    【黑马-python】---学习笔记(2)---Python基础_第1张图片

  • 解释器:翻译一句执行一句;编译型语言执行速度更快;但是跨平台性,解释器更好,A操作系统的编译器生成的exe只能在A系统执行,但是对于解释器,是在操作系统安装不同的解释器,就可以执行同一份代码在不同操作系统中执行;

1.2 python的设计目标

image-20220416155532460
【黑马-python】---学习笔记(2)---Python基础_第2张图片【黑马-python】---学习笔记(2)---Python基础_第3张图片

1.3 python的特点

  • python是完全面向对象的语言
    • 函数,模块,数字,字符串都是对象,在python中一切皆对象;
    • 完全支持继承、重载、多重继承;
    • 支持重载运算符,也支持泛型编程;
  • python拥有一个强大的标准库,python语言的核心只包含数字,字符串,列表,字典,文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信,文本处理,数据库接口,图像系统,XML处理等额外功能;
  • python社区提供了大量的第三方模块,使用方式与标准库类似,功能覆盖科学计算、人工智能、机器学习,Web开发,数据库接口,图形系统多个领域

1.3.1 面向对象的思维方式

  • 面对对象是一种思维方式,也是一门程序设计技术;
  • 解决复杂的问题,就可以找多个不同的对象、各司其职,共同实现,最终实现需求;

1.3.2 python优缺点

  • 优点:

    • 简单易学,免费开源;
    • 面向对象,丰富的库
    • 可拓展性
      • 如果需要一段关键代码运行得更快或者某些算法不公开,可以把这部分程序用C或者C++编写,然后在python程序中使用它们;
  • 缺点

    • 运行速度慢**(解释性语言)**
    • 国内市场较小,中文资料匮乏

1.4 第一个Python程序

  • 目标
    • 第一个helloPython程序;
    • Python2.x3.x版本简介;
    • 执行Python程序的三种方式
      • 解释器—python/python3
      • 交互式—ipython
      • 集成开发环境—PyCharm

1.4.1 第一个HelloPython程序

1、Python源程序的基本概念

  • Python源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做Python开发;
  • Python程序的文件扩展名通常都是.py
    image-20220416164352236

1.4.2 Python 2.x与3.x版本简介【黑马-python】---学习笔记(2)---Python基础_第4张图片

1.4.3 执行Python程序的三种方式

1、解释器python/python3
【黑马-python】---学习笔记(2)---Python基础_第5张图片
2、交互式运行Python程序

  • 直接在终端中运行解释器,而不输入要执行的文件名;
  • 在Python的Shell中直接输入Python的代码,会立即看到程序执行结果

(1)交互式运行Python的优缺点

  • 优点:
    • 适合于学习/验证Python语法或局部代码;
  • 缺点
    • 代码不能保存;不适合运行太大程序;

(2)退出官方的解释器
【黑马-python】---学习笔记(2)---Python基础_第6张图片

3、IPython
【黑马-python】---学习笔记(2)---Python基础_第7张图片

1.4.4 Python的IDE—PyCharm

(1)集成开发环境(IDE)
【黑马-python】---学习笔记(2)---Python基础_第8张图片

(2)PyCharm
【黑马-python】---学习笔记(2)---Python基础_第9张图片

1.4.5 程序注释ctrl+/

  • **作用:**在程序中进行标注说明,增强程序的可读性;

(1)单行注释(行注释)

  • #开头,#右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用
    image-20220417144658611
  • 在代码后面增加的单行注释
    • 在程序开发时,同样可以使用#在代码后面增加说明性文字;
    • 为了保证代码可读性,注释和代码之间至少有两个空格

(2)多行注释(块注释)

  • 注释信息很多,一行无法显示,使用多行注释,可以用一对连续的三个引号(单引号和双引号都可以)
    【黑马-python】---学习笔记(2)---Python基础_第10张图片

1.5 算数运算符

  • 算术运算符是运算符的一种;
    【黑马-python】---学习笔记(2)---Python基础_第11张图片
  • 在Python中*运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果;
    【黑马-python】---学习笔记(2)---Python基础_第12张图片

1.5 程序执行原理(科普)

  • 计算机的三大件;
  • 程序执行原理;
  • 程序的作用;

1.5.1 计算机的三大件

  • CPU
    • 中央处理器,一块超大规模的集成电路;
    • 负责处理数据/计算
  • 内存
    • 临时存储数据,掉电丢失;
    • 速度快,空间小,价格高;
  • 硬盘
    • 永久存储数据,掉电不丢失;
    • 速度慢,空间大,价格低
      【黑马-python】---学习笔记(2)---Python基础_第13张图片

1.5.2 程序执行原理

  • 程序要执行,首先要被加载到内存;

【黑马-python】---学习笔记(2)---Python基础_第14张图片
【黑马-python】---学习笔记(2)---Python基础_第15张图片

  • 程序用来处理数据,变量用来存储数据;

2 Python基本语法

2.1 变量

2.1.1 变量的基本使用

1、变量定义

  • !!在Python中,每个变量在使用前必须赋值,变量赋值以后该变量才会被创建;!!

2、变量类型

  • **在Python中,定义变量不需要指定变量类型,**运行时Python解释器会根据赋值语句等号右侧数据自动推导保存数据的变量类型;

  • 数据类型可以分为数字型非数字型

    • 数字型
      • 整型(int)
      • 浮点型(float)
      • 布尔型(bool)
      • 复数型(complex)
        • 主要用于科学计算,例如:平面场问题,波动问题,电感电容问题;
    • 非数字型
      • 字符串
      • 列表
      • 元组
      • 字典
  • type()函数可以查看变量类型;

3、python2.0和3.0中的整型

  • python2.0中区分有int(整数)和long(长整数)
  • python3.0中只有int(整数)

2.1.2 不同类型变量的计算

  • 数字型变量直接计算

    • 不同数字型变量之间可以直接计算

    • 如果是bool类型,True=1,False=0;

  • 字符串变量+拼接字符串

    • 在Python中,字符串之间可以使用+拼接成新的为字符串;
  • 字符串变量可以与整数使用*重复拼接相同的字符串

  • !!数字型变量和字符串之间不能进行其他计算!!

2.1.3 变量的输入输出input、print

(1)input函数实现键盘输入

  • 在Python中可以使用input函数从键盘等待用户输入

  • 用户输入的任何内容Python都认为是一个字符串image-20220417162005479
    【黑马-python】---学习笔记(2)---Python基础_第16张图片
    (2)类型转换函数
    image-20220417162358200

  • 可以用类型转换函数来调整输入的字符串类型;

(2)变量的格式化输出

  • python中可以使用print函数将信息输出到控制台;
  • 输出数据,需要格式化操作符;
  • %被称为格式化操作符,专门用于处理字符串中的格式
    • 包含%的字符串,被称为格式化字符串
    • %和不同的字符联用,不同类型的数据需要使用不同的格式化字符
      【黑马-python】---学习笔记(2)---Python基础_第17张图片
      【黑马-python】---学习笔记(2)---Python基础_第18张图片

2.1.4 变量的命名

(1)标识符和关键字

  • 标识符

    • 标识符就是程序员定义的变量名、函数名

    • 标识符可以由字母、下划线和数字组成;

      • 不能以数字开头;
      • 不能与关键字重名
  • 关键字
    【黑马-python】---学习笔记(2)---Python基础_第19张图片
    【黑马-python】---学习笔记(2)---Python基础_第20张图片
    (2)变量的命名规则

  • 命名规则是一种惯例,并无绝对与强制,目的是为了增加代码的识别和可读性;

  • 注意:!!Python中标识符是区分大小写的!!
    【黑马-python】---学习笔记(2)---Python基础_第21张图片

  • !!每个单词都使用小写字母!!
    【黑马-python】---学习笔记(2)---Python基础_第22张图片
    【黑马-python】---学习笔记(2)---Python基础_第23张图片

  • 在python中还是都采用小写字母的命名方式!!

2.2 判断(if)语句

2.2.1 if 判断语句基本语法

(1)if
【黑马-python】---学习笔记(2)---Python基础_第24张图片

  • 注意:在Python中,Tab和空格不要混用!!
  • !!if语句以及所有缩进部分是一个完整的代码块!!

(2)else
【黑马-python】---学习笔记(2)---Python基础_第25张图片

  • if 和 else 语句以及各自的缩进部分共同是一个完整的代码块

(3)elif

(4)if嵌套
【黑马-python】---学习笔记(2)---Python基础_第26张图片

2.2.2 比较(关系)运算符\

【黑马-python】---学习笔记(2)---Python基础_第27张图片

2.2.3 逻辑运算

  • 逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件

  • Python中的逻辑运算符包括:与and/或or/非not三种
    image-20220417174438522image-20220417174444468image-20220417174501230

2.2.4 应用练习—石头剪刀布

  • 换行,一行太长,
    【黑马-python】---学习笔记(2)---Python基础_第28张图片
  • 随机数处理
    【黑马-python】---学习笔记(2)---Python基础_第29张图片

2.3 循环

2.3.1 程序三大流程:顺序,分支,循环

  • 顺序—从上向下,顺序执行代码;
  • 分支—根据条件判断,决定执行代码的分支;
  • 循环—让特定代码重复执行;
    【黑马-python】---学习笔记(2)---Python基础_第30张图片

2.3.2 while语句基本语法

【黑马-python】---学习笔记(2)---Python基础_第31张图片

  • 注意:while语句以及缩进不分是一个完整的代码块;

2.3.3 赋值运算符

  • 赋值运算符中间不能使用空格
    【黑马-python】---学习笔记(2)---Python基础_第32张图片

  • python中计算方法

    • 自然计数法(从1开始)
    • 程序计数法(从0开始)
      • 除非特殊需求,否则循环的计数都从0开始

2.3.4 break和continue

  • breakcontinue专门在循环中使用的关键字
    • break某一条件满足时,直接退出整个循环
    • continue某一条件满足时,不执行当层循环的后续代码
  • breakcontinue都只针对当前所在循环有效

2.3.5 循环嵌套

image-20220417200442639

  • print函数使用
    • 默认情况下,print()函数输出内容后,会自动在内容末尾增加换行
    • 如果不希望末尾增加换行,可以在print函数输出内容后面增加,end=""
    • 其中“”中间可以指定print函数输出内容之后,继续希望显示的内容
      【黑马-python】---学习笔记(2)---Python基础_第33张图片
      【黑马-python】---学习笔记(2)---Python基础_第34张图片

2.3.6 字符串中的转义字符

  • \t在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
    • 制表符是在不使用表格情况下垂直方向按列对齐文本
  • \n在控制台输出一个换行符
    【黑马-python】---学习笔记(2)---Python基础_第35张图片

2.4 函数基础

2.4.1 函数概念

  • 函数:就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用

  • 函数使用步骤

    • 1、定义函数----封装独立功能;
    • 2、调用函数----享受封装成果
  • 函数作用:使用函数提高编写效率以及代码的重用
    image-20220417205617381
    image-20220417205550323

2.4.2 函数定义及调用

【黑马-python】---学习笔记(2)---Python基础_第36张图片

  • def是define的缩写;

  • 函数名称应该能够表达函数封装代码的功能,方便后续调用

  • 函数名称符合标识符命名规则

    • 字母,数字,下划线组成;
    • 不能以数字开头
    • 不能与关键字重名
  • 通过**函数名()完成对函数的调用**

  • 定义好函数之后,只表示这个函数封装了一段代码,如果不主动调用函数,函数不会主动执行;

  • 函数调用在函数定义后
    image-20220417210357564

2.4.3 函数的文档注释

  • 在开发中,如果希望给函数增加注释,应该在定义函数下方,使用连续的三对引号

  • 连续的三对引号之间编写对函数的说明文字

  • 函数调用位置,使用快捷键ctrl+Q可以查看函数的说明信息

  • !!注意:因为函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留两个空行;!!

2.4.4 函数的参数

(1)函数参数的使用
【黑马-python】---学习笔记(2)---Python基础_第37张图片

(2)参数的作用

  • 增加函数的通用性,针对相同的数据处理逻辑,能够适应更多的数据
    • 函数内部,把参数当做变量使用,进行数据处理;
    • 函数调用是,按照函数定义的参数顺序通过参数传递在函数内部处理的数据

(3)形参与实参

  • 形参:定义函数时,小括号的参数,用来接收参数用的;
  • 实参:调用函数时,传入函数的变量;

2.4.5 函数返回值

【黑马-python】---学习笔记(2)---Python基础_第38张图片

2.4.6 函数的嵌套调用

  • 一个函数里面又调用了另外一个函数,就是函数嵌套调用

2.5 模块

2.5.1 模块定义

  • 模块是python程序架构的一个核心概念

    • 模块就像工具包,要想使用工具包中的工具,需要导入import这个模块;
    • 每一个扩展包py结尾的ython源代码文件都是一个模块
    • 在模块中定义的全局变量,函数都是模块能够提供给外界直接使用的工具;
      【黑马-python】---学习笔记(2)---Python基础_第39张图片
  • 小结

    • 在一个python中定义变量或函数;
    • 在另一个文件中import导入这个模块;
    • 导入之后,可以使用**模块名.变量/模块名.函数**的方式,使用这个模块中定义的变量或函数;
  • 模块可以让编写过的代码方便复用!

  • 模块名也是一个标识符,要符合标识符命名规则

2.5.2 Pyc文件(了解)

【黑马-python】---学习笔记(2)---Python基础_第40张图片

  • 当工具包被import时,才会产生这个pyc文件;

2.6 高级变量类型

  • 目标
    • 列表
    • 元组
    • 字典
    • 字符串
    • 公共方法
    • 变量高级
      【黑马-python】---学习笔记(2)---Python基础_第41张图片

2.6.1 列表List

1、列表的定义

  • List(列表)是python中使用最频繁的数据类型,在其他语言中称为数组
  • 存储一串信息;
  • 列表用[]定义,数据之间用分隔;
  • 列表的索引从0开始;
    • 索引就是数据在列表中的位置编号,索引又可以被称为下标;
name_list=["zhangsan","lisi","wangwu"]

【黑马-python】---学习笔记(2)---Python基础_第42张图片
2、列表list的常用操作
image-20220418154155501【黑马-python】---学习笔记(2)---Python基础_第43张图片【黑马-python】---学习笔记(2)---Python基础_第44张图片

  • del关键字本质上是用来将一个变量从内存中删除的
    • **注意:**如果使用del关键字将变量从内存中删除,后续代码就不能使用这个变量
      【黑马-python】---学习笔记(2)---Python基础_第45张图片
  • (5)排序sort,reverse
  • (6)迭代遍历
    【黑马-python】---学习笔记(2)---Python基础_第46张图片

3、列表的应用场景

  • 尽管在python列表可以存储不同类型的数据
  • 但在开发中,更多的应用场景是,
    • 列表存储相同类型的数据
    • 通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作

2.6.2 关键字,函数和方法

  • 关键字是Pyton内置的,具有特殊意义的标识符
  • **函数封装了独立功能,**可以直接调用
  • 方法与函数类似,封装了独立功能,但需要通过对象调用,表示针对这个对象要做的操作

2.6.3 元组tuple

1、元组()的定义

  • 保存不同类型数据,不能修改
    【黑马-python】---学习笔记(2)---Python基础_第47张图片
  • 元组tuple元素不能修改!!
  • 元组中只包含一个元素,需要在元素后面添加逗号

2、元组常用操作
image-20220418162036045image-20220418162009408

3、循环遍历
【黑马-python】---学习笔记(2)---Python基础_第48张图片

4、应用场景
【黑马-python】---学习笔记(2)---Python基础_第49张图片
【黑马-python】---学习笔记(2)---Python基础_第50张图片

5、元组和列表之间的转换
【黑马-python】---学习笔记(2)---Python基础_第51张图片

2.6.4 字典dictionary

1、字典定义
【黑马-python】---学习笔记(2)---Python基础_第52张图片【黑马-python】---学习笔记(2)---Python基础_第53张图片
【黑马-python】---学习笔记(2)---Python基础_第54张图片

  • 注意:**字典是一个无序的数据结合,**使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的;

2、字典的增删查改
【黑马-python】---学习笔记(2)---Python基础_第55张图片

3、字典常用操作
【黑马-python】---学习笔记(2)---Python基础_第56张图片

4、循环遍历
【黑马-python】---学习笔记(2)---Python基础_第57张图片
5、字典和列表组合的应用场景
【黑马-python】---学习笔记(2)---Python基础_第58张图片

2.6.5 字符串

1、字符串定义
【黑马-python】---学习笔记(2)---Python基础_第59张图片

  • 单引号''和双引号""都可以定义字符串,可以在内部需要""双引号时''单引号定义;
    image-20220418171449897
    2、字符串常用操作
    【黑马-python】---学习笔记(2)---Python基础_第60张图片

  • (1)判断类型-9
    【黑马-python】---学习笔记(2)---Python基础_第61张图片

  • isspace()判断空白字符

    • \n,\t,\r都属于空白字符;
  • 判断字符串中是否只包含数字
    【黑马-python】---学习笔记(2)---Python基础_第62张图片

    • 平时程序中尽量使用第一个,isdecimal因为程序中一般都是简单数字;
  • (2)查找和替换-7
    【黑马-python】---学习笔记(2)---Python基础_第63张图片
    【黑马-python】---学习笔记(2)---Python基础_第64张图片

  • (3)大小写转换-5
    【黑马-python】---学习笔记(2)---Python基础_第65张图片

  • (4)文本对齐-3
    【黑马-python】---学习笔记(2)---Python基础_第66张图片【黑马-python】---学习笔记(2)---Python基础_第67张图片

  • (5)去除空白字符-3

【黑马-python】---学习笔记(2)---Python基础_第68张图片

  • (6)拆分和连接-5

【黑马-python】---学习笔记(2)---Python基础_第69张图片

3、字符串的切片

【黑马-python】---学习笔记(2)---Python基础_第70张图片

  • 步长:在截取的部分不包括结束索引指定的位置,例如[0,2]就是py,没有t,步长就是跳跃选取;
  • 倒序:从-1开始,-1指的就是n;
  • 假如从0到-1是切不到n的,此时结束索引空出来,就可以了
字符串[开始索引:结束索引:步长]
  • 字符串逆序就可以num_str[-1::-1];从-1开始,步长-1

2.6.6 公共方法

1、Python内置函数

【黑马-python】---学习笔记(2)---Python基础_第71张图片

  • 字符串比较规则"0"<"A"<"a"
  • del的两种方式
    【黑马-python】---学习笔记(2)---Python基础_第72张图片
  • max和min传入的是容器,而不是元素item

2、切片

image-20220418205436409

  • 切片方法适用于字符串、列表、元组

    • 切片使用索引值来限定范围,从一个大的字符串中切出小的字符串

    • 列表和元组都是有序的集合,都能够通过索引值获取到对应的数据;

    • 字典是一个无序的集合,是使用键值对保存数据;不能针对字典切片;

3、运算符
【黑马-python】---学习笔记(2)---Python基础_第73张图片

  • 注意:
    • in在对字典操作时,判断的是字典的键
    • innot in被称为成员运算符
  • 字典中Key是唯一的;
  • +与extend,append区别在于,+生成一个新的,extend,append是修改原来的;extend和append区别如下图所示:
    【黑马-python】---学习笔记(2)---Python基础_第74张图片

3、完整的for循环语法
【黑马-python】---学习笔记(2)---Python基础_第75张图片image-20220418211613511

2.7 综合应用—名片管理系统

【黑马-python】---学习笔记(2)---Python基础_第76张图片
【黑马-python】---学习笔记(2)---Python基础_第77张图片

2.8 变量进阶

  • 变量的引用
  • 可变和不可变类型
  • 局部变量和全局变量

2.8.1 变量的引用

  • 变量和数据都是保存在内存中的;
  • 在python中函数的参数传递以及返回值都是靠引用传递的

1、引用的概念
【黑马-python】---学习笔记(2)---Python基础_第78张图片【黑马-python】---学习笔记(2)---Python基础_第79张图片

2、调用函数传递本质上是实参的引用

【黑马-python】---学习笔记(2)---Python基础_第80张图片

3、函数返回值也是返回引用

【黑马-python】---学习笔记(2)---Python基础_第81张图片

2.8.2 可变和不可变类型

【黑马-python】---学习笔记(2)---Python基础_第82张图片

  • 注意:字典的key只能使用不可变类型的数据

【黑马-python】---学习笔记(2)---Python基础_第83张图片
【黑马-python】---学习笔记(2)---Python基础_第84张图片

  • 可变类型的数据变化,是通过方法来实现的
  • 如果给一个可变类型的变量,赋值了一个新的数据,引用会修改
    • 变量不再对之前的数据引用
    • 变量改为对新赋值的数据引用

2.8.3 局部变量

【黑马-python】---学习笔记(2)---Python基础_第85张图片
image-20220419164450298

2.8.4 全局变量

  • 全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量

【黑马-python】---学习笔记(2)---Python基础_第86张图片
1、函数内部不允许直接修改全局变量

  • 在函数内部,可以通过全局变量的引用获取对应的数据;

  • 函数内部不允许直接修改全局变量的引用----不允许使用赋值语句修改全局变量的值!
    【黑马-python】---学习笔记(2)---Python基础_第87张图片
    2、global关键字修改全局变量
    【黑马-python】---学习笔记(2)---Python基础_第88张图片

3、全局变量的定义的位置

  • 将全局变量定义在其他函数的上方
    【黑马-python】---学习笔记(2)---Python基础_第89张图片
    4、全局变量命名的建议
    image-20220419170056906

2.9 函数进阶

  • 函数参数和返回值的作用
  • 函数的返回值 进阶
  • 函数的参数 进阶
  • 递归函数

2.9.1 函数的返回值—元组

【黑马-python】---学习笔记(2)---Python基础_第90张图片

  • 交换两个变量的值
    【黑马-python】---学习笔记(2)---Python基础_第91张图片

2.9.2 函数参数 进阶

【黑马-python】---学习笔记(2)---Python基础_第92张图片

  • 但是,如果传入可变类型,可以通过方法来修改影响到外部变量
    【黑马-python】---学习笔记(2)---Python基础_第93张图片

  • 面试题,+=,

    • 在python中,列表变量调用+=本质上是在执行列表变量的extend方法,不会修改变量的引用,会在原变量地址进行新增;

2.9.3 缺省参数

【黑马-python】---学习笔记(2)---Python基础_第94张图片
【黑马-python】---学习笔记(2)---Python基础_第95张图片
【黑马-python】---学习笔记(2)---Python基础_第96张图片【黑马-python】---学习笔记(2)---Python基础_第97张图片

2.9.4 多值参数*args(元组)、**kwargs(字典)

【黑马-python】---学习笔记(2)---Python基础_第98张图片【黑马-python】---学习笔记(2)---Python基础_第99张图片【黑马-python】---学习笔记(2)---Python基础_第100张图片
【黑马-python】---学习笔记(2)---Python基础_第101张图片
【黑马-python】---学习笔记(2)---Python基础_第102张图片

  • !!不然会出现如下结果,一个元组+一个字典被包装成一个元组传给了args!!
    【黑马-python】---学习笔记(2)---Python基础_第103张图片

2.9.5 递归

【黑马-python】---学习笔记(2)---Python基础_第104张图片

你可能感兴趣的:(Python,python,linux)