python学习笔记:基础知识(一)

python学习笔记
----
一. 注释
1. 单行注释(行注释):
a. 以 `#` 开头,`#` 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用。
b. 为了保证代码的可读性,`#` 后面建议先添加一个空格,然后再编写相应的说明文字。
c. **为了保证代码的可读性**,**注释和代码之间** 至少要有 **两个空格**
示例代码如下:
print("hello python")  # 输出 `hello python`

2. 多行注释(块注释):
要在 Python 程序中使用多行注释,可以用 **一对 连续的 三个 引号**(单引号和双引号都可以)
示例代码如下:
"""
这是一个多行注释

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


二. 关于代码规范
1. Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档
其中第 8 篇文档专门针对 **Python 的代码格式** 给出了建议,也就是俗称的 **PEP 8**
文档地址:https://www.python.org/dev/peps/pep-0008/
谷歌有对应的中文文档:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

2. 任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步


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

2. 在 Python 中 `*` 运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果
In [1]: "-" * 50
Out[1]: '----------------------------------------' 

3. 算数运算符的优先级
a. 和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是:
**先乘除后加减**
同级运算符是 **从左至右** 计算
可以使用 `()` 调整计算的优先级

b. 以下表格的算数优先级由高到最低顺序排列
| 运算符   | 描述                   |
| -------- | ---------------------- |
| **       | 幂 (最高优先级)        |
| * / % // | 乘、除、取余数、取整除 |
| + -      | 加法、减法             |


四. 变量
1. 在内存中创建一个变量,会包括:
  1. 变量的名称
  2. 变量保存的数据
  3. 变量存储数据的类型
  4. 变量的地址(标示)

2. 变量的类型
* 在 `Python` 中定义变量是 **不需要指定类型**(在其他很多高级语言中都需要)
* 数据类型可以分为 **数字型** 和 **非数字型**
* 数字型
  * 整型 (`int`)
  * 浮点型(`float`)
  * 布尔型(`bool`) 
    * 真 `True` `非 0 数` —— **非零即真**
    * 假 `False` `0`
  * 复数型 (`complex`)
    * 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题
* 非数字型
  * 字符串
  * 列表
  * 元组
  * 字典

3. 使用 `type` 函数可以查看一个变量的类型
In [1]: type(name)

4. ### 不同类型变量之间的计算
1) **数字型变量** 之间可以直接计算
* 在 Python 中,两个数字型变量是可以直接进行 算数运算的
* 如果变量是 `bool` 型,在计算时
  * `True` 对应的数字是 `1`
  * `False` 对应的数字是 `0`
2) 在 Python 中,字符串之间可以使用 `+` 拼接生成新的字符串
In [1]: first_name = "三"
In [2]: last_name = "张"
In [3]: first_name + last_name
Out[3]: '三张'
3) **字符串变量** 可以和 **整数** 使用 `*` 重复拼接相同的字符串
In [1]: "-" * 50
Out[1]: '--------------------------------------------------'
4) **数字型变量** 和 **字符串** 之间 **不能进行其他计算**
In [1]: first_name = "zhang"
In [2]: x = 10
In [3]: x + first_name
---------------------------------------------------------------------------
TypeError: unsupported operand type(s) for +: 'int' and 'str'
类型错误:`+` 不支持的操作类型:`int` 和 `str`

5. 变量的输入
1) ####  input 函数实现键盘输入
* 在 Python 中可以使用 `input` 函数从键盘等待用户的输入
* 用户输入的 **任何内容** Python 都认为是一个 **字符串**
* 语法如下:
字符串变量 = input("提示信息:")
2) 类型转换函数
| 函数     | 说明                  |
| -------- | --------------------- |
| int(x)   | 将 x 转换为一个整数   |
| float(x) | 将 x 转换到一个浮点数 |

6. 变量的格式化输出
`%` 被称为 **格式化操作符**,专门用于处理字符串中的格式
* 包含 `%` 的字符串,被称为 **格式化字符串**
* `%` 和不同的 **字符** 连用,**不同类型的数据** 需要使用 **不同的格式化字符**
| 格式化字符 | 含义                                                         |
| ---------- | ------------------------------------------------------------ |
| %s         | 字符串                                                       |
| %d         | 有符号十进制整数,`%06d` 表示输出的整数显示位数,不足的地方使用 `0` 补全 |
| %f         | 浮点数,`%.2f` 表示小数点后只显示两位                        |
| %%         | 输出 `%`                                                     |
语法格式如下:
print("格式化字符串" % 变量1)
print("格式化字符串" % (变量1, 变量2...))

7. 变量的命名
1) ## 0.1 标识符和关键字
### 1.1 标识符
> 标示符就是程序员定义的 **变量名**、**函数名**
> **名字** 需要有 **见名知义** 的效果,见下图:
* 标示符可以由 **字母**、**下划线** 和 **数字** 组成
* **不能以数字开头**
* **不能与关键字重名**
2) ### 关键字
* **关键字** 就是在 `Python` 内部已经使用的标识符
* **关键字** 具有特殊的功能和含义
* 开发者 **不允许定义和关键字相同的名字的标示符**
通过以下命令可以查看 `Python` 中的关键字
In [1]: import keyword
In [2]: print(keyword.kwlist)
3) 变量的命名规则
**注意** `Python` 中的 **标识符** 是 **区分大小写的**
1. 在定义变量时,为了保证代码格式,`=` 的左右应该各保留一个空格
2. 在 `Python` 中,如果 **变量名** 需要由 **二个** 或 **多个单词** 组成时,可以按照以下方式命名
   1. 每个单词都使用小写字母
   2. 单词与单词之间使用 **`_`下划线** 连接
   * 例如:`first_name`、`last_name`、`qq_number`、`qq_password`
3. 驼峰命名法
* 当 **变量名** 是由二个或多个单词组成时,还可以利用驼峰命名法来命名
* **小驼峰式命名法**
  * 第一个单词以小写字母开始,后续单词的首字母大写
  * 例如:`firstName`、`lastName`
* **大驼峰式命名法**
  * 每一个单词的首字母都采用大写字母
  * 例如:`FirstName`、`LastName`、`CamelCase` 

五. 判断(if)语句
1. 
if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……


2. `if` 的嵌套
if 条件 1:
    条件 1 满足执行的代码
    ……
    
    if 条件 1 基础上的条件 2:
        条件 2 满足时,执行的代码
        ……    
        
    # 条件 2 不满足的处理
    else:
        条件 2 不满足时,执行的代码
        
# 条件 1 不满足的处理
else:
    条件1 不满足时,执行的代码


六. 随机数的处理
import random
`random.randint(a, b)` ,返回 `[a, b]` 之间的整数,包含 `a` 和 `b`
random.randint(12, 20)  # 生成的随机数n: 12 <= n <= 20   
random.randint(20, 20)  # 结果永远是 20   
random.randint(20, 10)  # 该语句是错误的,下限必须小于上限


七. 循环
1. `while` 语句基本语法
初始条件设置 —— 通常是重复执行的 计数器

while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
    
    处理条件(计数器 + 1)

2. `while` 循环嵌套
while 条件 1:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
    
    while 条件 2:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
    
        处理条件 2
    
    处理条件 1

3. ## break 和 continue
> `break` 和 `continue` 是专门在循环中使用的关键字
* `break` **某一条件满足时**,退出循环,不再执行后续重复的代码
* `continue` **某一条件满足时**,不执行后续重复的代码
> `break` 和 `continue` 只针对 **当前所在循环** 有效

4. **知识点** 对 `print` 函数的使用做一个增强
* 在默认情况下,`print` 函数输出内容之后,会自动在内容末尾增加换行
* 如果不希望末尾增加换行,可以在 `print` 函数输出内容的后面增加 `, end=""`
* 其中 `""` 中间可以指定 `print` 函数输出内容之后,继续希望显示的内容
* 语法格式如下:
# 向控制台输出内容结束之后,不会换行
print("*", end="")
# 单纯的换行
print("")
`end=""` 表示向控制台输出内容结束之后,不会换行

5. **字符串中的转义字符**
* `\t` 在控制台输出一个 **制表符**,协助在输出文本时 **垂直方向** 保持对齐
* `\n` 在控制台输出一个 **换行符**
> **制表符** 的功能是在不使用表格的情况下在 **垂直方向** 按列对齐文本
| 转义字符 | 描述       |
| -------- | ---------- |
| \\\\     | 反斜杠符号 |
| \\'      | 单引号     |
| \\"      | 双引号     |
| \n       | 换行       |
| \t       | 横向制表符 |
| \r       | 回车       |


八. 函数基础
1. 函数的定义
定义函数的格式如下:
def 函数名():
    函数封装的代码
    ……

2. 函数调用
调用函数很简单的,通过 `函数名()` 即可完成对函数的调用

3. 思考
* 能否将 **函数调用** 放在 **函数定义** 的上方?
  * 不能!
  * 因为在 **使用函数名** 调用函数之前,必须要保证 `Python` 已经知道函数的存在
  * 否则控制台会提示 `NameError: name 'say_hello' is not defined` (**名称错误:say_hello 这个名字没有被定义**)

4. 代码示例
name = "小明"


# 解释器知道这里定义了一个函数
def say_hello():
    print("hello 1")
    print("hello 2")
    print("hello 3")

print(name)
# 只有在调用函数时,之前定义的函数才会被执行
# 函数执行完成之后,会重新回到之前的程序中,继续执行后续的代码
say_hello()

print(name)

5. 函数的返回值
在函数中使用 `return` 关键字可以返回结果
代码示例:
def sum_2_num(num1, num2):
    """对两个数字的求和"""

    return num1 + num2

# 调用函数,并使用 result 变量接收计算结果
result = sum_2_num(10, 20)

print("计算结果是 %d" % result)


6. ## 使用模块中的函数
> **模块是 Python 程序架构的一个核心概念**
* **模块** 就好比是 **工具包**,要想使用这个工具包中的工具,就需要 **导入 import** 这个模块
* 每一个以扩展名 `py` 结尾的 `Python` 源代码文件都是一个 **模块**
* 在模块中定义的 **全局变量** 、 **函数** 都是模块能够提供给外界直接使用的工具

* 可以 **在一个 Python 文件** 中 **定义 变量 或者 函数**
* 然后在 **另外一个文件中** 使用 `import` 导入这个模块
* 导入之后,就可以使用 `模块名.变量` / `模块名.函数` 的方式,使用这个模块中定义的变量或者函数

====

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值