Python 是一门抽象程度高、运行速度较慢的解释型编程语言。
Python 作者是 Guido van Rossum。
推荐使用 winget
安装:
winget install Python.Python.3.12 -s winget
安装完成后在 cmd 或者 pwsh 中运行:
python --version
检查是否安装成功,安装成功后控制台会打印出 python 的版本信息, 例如:
>python --version
Python 3.11.1
也可以去官网下载可执行程序:
sudo apt install python3
安装完成后执行命令:
$python3 --version
Python 3.10.6
在 linux 下可使用 python3
或者 python3.10
使用 python
。
python 代码文本文件扩展名:.py
。
需要使用 python 解释器运行 python 代码。
有很多种 python 解释器。
使用最广泛的 python 解释器。
基于 CPython 的解释器,提示符为 In[序号]:
。
采用 JIT 技术,对 python 代码进行动态编译,可以显著 提高 python 代码的执行速度。
运行在 JVM 的 python 解释器。可以把 python 代码编译成 Java 字节码。
运行在 .Net
平台的 python 解释器,可以把 python 代码编译成 .Net
的字节码。
示例代码;
#
# 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
print()
接受多个字符串/数字/变量,参数之间用 ,
隔开,依次打印,遇到 ,
会输出一个空格,最后
输出所有参数拼接起来的字符串。
输出输出简写为 I/O。
python 的代码例子:
# 这行是注释
a = 100
if a >= 100:
print(a)
else:
print(-a)
#
开头的一行语句是注释,该行会被解释器忽略掉。- python 使用 缩进来组织代码块,当语句以
:
结尾时,缩进的语句视为代码块。 - python 程序大小写敏感。
建议不使用 tab 缩进,而是使用 4 个 空格。
1. 整数
python 可以处理任意大小的整数,包括负整数。
十六进制前缀:0x
,如 0x33
,默认输出是十进制整数。
python 允许在数字中间以 _
分隔,如 1000_0000
、0xffff_ffff
。
2. 浮点数
可以使用科学计数法,1.23e9
代表 1.23x109。
整数和浮点数在计算机中存储方式是不同的,整数运算永远是精确的,而浮点运算会存在 误差。
3. 字符串
字符串是用 ''
或者 ""
包裹起来的任意文本。
转义字符:\
。
常用转义:
\n
换行\t
制表符\\
表示\
。
python 允许使用 r""
表示 ""
内部的字符串默认不转义。
python 允许使用 '''...'''
的格式包裹多行内容,并保留原有格式。
4. 布尔值
只有 True
和 False
两种值。
布尔值可以进行 and
、or
、not
运算,常用于条件判断。
5. 空值
None
表示。
6. 变量
变量名必须是大小写英文、数字和 _
的组合,且不能用数字开头。
python 是动态语言,变量本身类型不固定。
7. 常量
在Python中,通常用全部大写的变量名表示常量。
实际上 python 中没有任何机制实现常量值不会被改变。
8. 除法
python 中,/
结果是浮点数。
//
结果是整数。
Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。
对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。
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}
则会以相应的变量替换。