Skip to content

Latest commit

 

History

History
280 lines (169 loc) · 6.68 KB

230620.md

File metadata and controls

280 lines (169 loc) · 6.68 KB

1 chapter 1 简介

Python 是一门抽象程度高、运行速度较慢的解释型编程语言。

Python 作者是 Guido van Rossum。

2 chapter 2 安装

2.1 windows11

推荐使用 winget 安装:

winget install Python.Python.3.12 -s winget

安装完成后在 cmd 或者 pwsh 中运行:

python --version

检查是否安装成功,安装成功后控制台会打印出 python 的版本信息, 例如:

>python --version
Python 3.11.1

也可以去官网下载可执行程序:

python3.8 下载

2.2 ubuntu 22.04

sudo apt install python3

安装完成后执行命令:

$python3 --version
Python 3.10.6

在 linux 下可使用 python3 或者 python3.10 使用 python

3 Python 解释器

python 代码文本文件扩展名:.py

需要使用 python 解释器运行 python 代码。

有很多种 python 解释器。

3.1 CPython

使用最广泛的 python 解释器。

3.2 IPython

基于 CPython 的解释器,提示符为 In[序号]:

3.3 PyPy

采用 JIT 技术,对 python 代码进行动态编译,可以显著 提高 python 代码的执行速度。

3.4 Jython

运行在 JVM 的 python 解释器。可以把 python 代码编译成 Java 字节码。

3.5 IronPython

运行在 .Net 平台的 python 解释器,可以把 python 代码编译成 .Net 的字节码。

4 第一个 python 程序

示例代码;

#
#      Copyright:  (C) 2023 shachi All rights reserved.
#
#           File: .\src\1.py
#         Author: shachi <[email protected]>
#    Description: 示例代码
#

def main():
    print("hello, world")

if __name__ == '__main__':
    main()

Mac/Linux 可以直接运行 .py 文件,只需要在文件头加上注释:

#!/usr/bin/env python3.11
# -*- coding: utf-8 -*-
#    ...

需要给文件加上可执行权限:chmod a+x xxx.py

Windows11 里这样运行:

终端切换到源代码所在目录,执行命令:

python ./xxx.py

3 输入与输出

示例代码

print() 接受多个字符串/数字/变量,参数之间用 , 隔开,依次打印,遇到 , 会输出一个空格,最后 输出所有参数拼接起来的字符串。

输出输出简写为 I/O。

4 Python 基础

python 的代码例子:

# 这行是注释
a = 100
if a >= 100:
    print(a)
else:
    print(-a)
  1. # 开头的一行语句是注释,该行会被解释器忽略掉。
  2. python 使用 缩进来组织代码块,当语句以 : 结尾时,缩进的语句视为代码块。
  3. python 程序大小写敏感。

建议不使用 tab 缩进,而是使用 4 个 空格。

4.1 数据类型和变量

示例代码

1. 整数

python 可以处理任意大小的整数,包括负整数。

十六进制前缀:0x,如 0x33,默认输出是十进制整数。

python 允许在数字中间以 _ 分隔,如 1000_00000xffff_ffff

2. 浮点数

可以使用科学计数法,1.23e9 代表 1.23x109

整数和浮点数在计算机中存储方式是不同的,整数运算永远是精确的,而浮点运算会存在 误差。

3. 字符串

字符串是用 '' 或者 "" 包裹起来的任意文本。

转义字符:\

常用转义:

  1. \n 换行
  2. \t 制表符
  3. \\ 表示 \

python 允许使用 r"" 表示 "" 内部的字符串默认不转义。

python 允许使用 '''...''' 的格式包裹多行内容,并保留原有格式。

4. 布尔值

只有 TrueFalse 两种值。

布尔值可以进行 andornot 运算,常用于条件判断。

5. 空值

None 表示。

6. 变量

变量名必须是大小写英文、数字和 _ 的组合,且不能用数字开头。

python 是动态语言,变量本身类型不固定。

7. 常量

在Python中,通常用全部大写的变量名表示常量。

实际上 python 中没有任何机制实现常量值不会被改变。

8. 除法

python 中,/ 结果是浮点数。

// 结果是整数。

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。

4.2 字符串和编码

示例代码

1. Python 的字符串

Python3 中,字符串是以 Unicode 编码的,也就是说,字符串支持多语言。

一个字符对应若干字节。

  • ord() 函数获取字符的整数表示。
  • chr() 函数把编码转换为相应的字符。

Python 对 bytes 类型的数据用带 b 前缀的单引号或者双引号表示:

x = b'ABC'
flower = b'\xe8\x8a\xb1'

'ABC'b'ABC' 的不同:后者每个字符都只占用一个字节。

以 Unicode 表示的字符串可以通过 encode() 方法编码为指定的字节流。

Ascii 字符可以用 ascii 编码为字节,内容相同,而非 Ascii 字符用 utf-8 编码为字节。

反过来,如果从网络或者磁盘读取了字节流,需要用 decode() 方法将字节流转换。

如果字节流中只有一小部分无效的字节,可以传入 errors='ignore' 忽略错误的字节。

len() 函数计算字符串的字符数,如果换成字节流,则计算字节数,一个中文字符通常占用 3 个字节,1 个英文字符只占用 1 个字节。

文件开头通常写上:

#!usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释告诉系统,这是一个 Python 的可执行程序,windows 系统会忽略这个注释。

第二行注释告诉 Python 解释器,按照 utf-8 格式读取源代码,同时确保编辑器使用 utf-8 编码。

2. 格式化字符串

(1) % 占位符

与 C 语言一致,常见占位符:

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

格式化整数和浮点数可以指定是否补 0 和指定整数和小数的位数。

其中,%s 可以把任何数据转换为字符串。

格式化字符串里打印 % 需要使用 %% 来转义。

(2) format() 方法

使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符 {0} 等。

(3) f-string

使用以 f 开头的字符串,与普通字符串不同之处在于,字符串中如果包含 {xxx} 则会以相应的变量替换。