Python基础

Python基础

这是一篇关于python基础知识复习的博客,除了基础之外,还会涉及进阶以及算法设计。

第一部分 Python基础语法

1. 认识Python

1.1. Python简介

Python的创始人为Guido van Rossum

Python 的设计目标:

  • 一门简单直观的语言并与主要竞争者一样强大
  • 开源,以便任何人都可以为它做贡献
  • 代码像纯英语那样容易理解
  • 适用于短期开发的日常任务

Python设计哲学

  • 优雅、明确、简单

Python开发者的哲学是:用一种方法,最好只有一种方法来做一件事

Python是完全面向对象的语言,在Python中一切皆对象

可扩展性:如果需要一段关键代码运行的更快或者希望某些算法不公开,可以把这部分程序用C或者C++编写,然后在Python程序中使用它们。

1.2. 第一个Python程序

执行Python程序的三种方式:

解释器、交互式运行、IDE运行

Python是一个格式非常严格的程序设计语言。

Python2.x默认不支持中文。

  • ASCII字符只包含256个字符,不支持中文
  • Python2.x的解释器名称是Python
  • Python3.x的解释器名称是Python3

2. 注释

  • 注释的作用

    使用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性

2.1. 单行注释

  • 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用
    1
    print("hello python")  # 输出'hello python'

为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字;为了保证代码的可读性,注释和代码之间 至少要有 两个空格。

2.2. 多行注释

  • 要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以)
    1
    2
    3
    4
    5
    6
    """
    这是一个多行注释

    在多行注释之间,可以写很多很多的内容……
    """
    print("hello python")

提示:

  1. 注释不是越多越好,对于一目了然的代码,不需要添加注释
  2. 对于 复杂的操作,应该在操作开始前写上若干行注释
  3. 对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)
  4. 绝不要描述代码,假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什么

2.3. 代码规范:

3. 运算符

3.1. 算数运算符

算数运算符是完成基本的算术运算使用的符号,用来处理四则运算,而“+”和“ * ”还可以用来处理字符串。

运算符 描述 实例
+ 10 + 10 = 20
- 10 - 10 = 0
* 10 * 20 = 200
/ 10 / 20 = 0.5
// 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4
% 取余数 返回除法的余数 9 % 2 = 1
** 又称次方、乘方,2 ** 3 = 8

3.2. 比较(关系)运算符

运算符 描述
== 检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!= 检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
> 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
< 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>= 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<= 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True
  • python2.x中判断 不等于 还可以使用<>运算符
  • python2.x中同样可以使用!=来判断不等于

3.3. 赋值运算符

  • 在 Python 中,使用 = 可以给变量赋值。在算术运算时,为了简化代码的编写,Python 还提供了一系列的 与 算术运算符 对应的 赋值运算符,注意:赋值运算符中间不能使用空格。
运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
%= 取 模 (余数)赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c *= a 等效于 c = c * a

3.4. 身份运算符身份运算符比较两个对象的内存位置。常用的有两个身份运算符,如下所述:

运算符 描述 示例
is 判断两个标识符是不是引用同一个对象 x is y,类似 id(x) == id(y)
is not 判断两个标识符是不是引用不同对象 x is not y,类似 id(a) != id(b)

辨析

  • is 用于判断 两个变量引用的对象是否为同一个
  • == 用于判断 引用变量的值 是否相等

3.5. 成员运算符Python成员运算符测试给定值是否为序列中的成员。 有两个成员运算符,如下所述:

运算符 描述
in 如果在指定的序列中找到一个变量的值,则返回true,否则返回false。
not in 如果在指定序列中找不到变量的值,则返回true,否则返回false。

3.6. 逻辑运算符|

运算符 逻辑表达式 描述
and x and y 只有 x 和 y 的值都为 True,才会返回 True
否则只要 x 或者 y 有一个值为 False,就返回 False
or x or y 只要 x 或者 y 有一个值为 True,就返回 True
只有 x 和 y 的值都为 False,才会返回 False
not not x 如果 x 为 True,返回 False
如果 x 为 False,返回 True

3.7. 运算符优先级

  • 以下表格的算数优先级由高到最低顺序排列:
运算符 描述
** 幂 (最高优先级)
* / % // 乘、除、取余数、取整除
+ - 加法、减法
<= < > >= 比较运算符
== != 等于运算符
= %= /= //= -= += = *= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

<补>程序执行原理

程序执行原理

  1. 操作系统会首先让 CPU 把 Python 解释器 的程序复制到 内存 中
  2. Python 解释器 根据语法规则,从上向下 让 CPU 翻译 Python 程序中的代码
  3. CPU 负责执行翻译完成的代码

    Python 的解释器有多大?

  • 执行以下终端命令可以查看 Python 解释器的大小
    1
    2
    3
    4
    5
    6
    7
    8
    # 1. 确认解释器所在位置
    $ which python

    # 2. 查看 python 文件大小(只是一个软链接)
    $ ls -lh /usr/bin/python

    # 3. 查看具体文件大小
    $ ls -lh /usr/bin/python2.7

4. 变量

4.1. 变量定义

  • 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
  • 可以用 其他变量的计算结果 来定义变量
  • 变量名 只有在 第一次出现 才是 定义变量
    1
    变量名 =

使用交互式方式,如果要查看变量内容,直接输入变量名即可,不需要使用print函数
使用解释器执行,如果要输出变量的内容,必须要要使用print函数

4.2. 变量的类型

  • 在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要),Python 可以根据 = 等号右侧的值,自动推导出变量中存储数据的类型
  • 数据类型可以分为 数字型 和 非数字型
    • 数字型
      • 整型 (int):Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。
      • 浮点型(float)
      • 布尔型(bool) :真 True 非 0 数 —— 非零即真,假 False 0。
      • 复数型 (complex):复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位。
    • 非数字型:有些运算符还支持这些数据类型,详见4.4.5.3 运算符。
      • 字符串(str):加号(+)是字符串连接运算符,星号(*)是重复运算符。
      • 列表(list)
      • 元组(tuple)
      • 字典(dict)

提示:在 Python 2.x 中,整数 根据保存数值的长度还分为:

  • int(整数)

  • long(长整数)

  • 使用 type 函数可以查看一个变量的类型

    1
    In [1]: type(name)

<补>不同类型变量之间的计算

  1. 数字型变量 之间可以直接计算
  • 在 Python 中,两个数字型变量是可以直接进行 算数运算的
  • 如果变量是 bool 型,在计算时
    • True 对应的数字是 1
    • False 对应的数字是 0
  1. 字符串变量 之间使用 + 拼接字符串
  2. 字符串变量 可以和 整数 使用 * 重复拼接相同的字符串
  3. 数字型变量 和 字符串 之间 不能进行其他计算

    <补>从键盘获取输入信息:input

  • 在 Python 中可以使用 input 函数从键盘等待用户的输入
  • 用户输入的 任何内容 Python 都认为是一个 字符串
    1
    字符串变量 = input("提示信息:")