Python 相关
Python 解释器安装
官网下载
windows版 下载地址
安装指南
downloads --> all releases --> 选择需要的解释器
下载版本 --> 选择 Windows installer (64-bit)
检查是否安装成功
打开 cmd --> 输入 python --version --> 显示版本号即安装成功
- 输入python -V点击回车键查看Python版本号
- 输入python进入python环境,当你看到命令提示符“>>>”则代表你已进入Python环境。
- 输入 print(“hello world”) 验证 python 输出
退出python环境
- exit() 或者 ctrl + z 回车
多版本共存
下载 python3.11 版本 --> 自定义安装 --> 勾选
Add Python 3.11 to PATH
(建议放在 C 盘根目录下,不能有中文路径!!
)下载 python3.10 版本 --> 自定义安装 --> 勾选
Add Python 3.10 to PATH
(建议放在 C 盘根目录下,不能有中文路径!!
)
- 分别打开 Python3.10 和 Python3.11 安装目录 --> 复制 python.exe 文件
- 将复制后的
python.exe
分别重命名
为python3.10.exe 和 python3.11.exe
- 重新打开 cmd --> 输入 python3.10 --version 和 python3.11 --version
- 如果显示 对应 python 解释器的版本信息,则表示两个版本都成功安装
也可以在D盘新建一个文件夹专门存放不同版本的 Python解释器
通过复制 python.exe 文件并重命名,来调用不同版本的python解释器
Python卸载时提示发生严重错误
解决办法:
- 找到对应的安装包,双击 repair (修复)后,重新卸载即可
Python 基础
注释
单行注释
#
: 使用井号
作为注释的开头,在井号
之后的所有内容都会被解释器忽略
# '#' 注释代码符号
# print('hello world')
多行注释
注释内容使用
一对儿 三个(单/双)引号
包裹
双引号
"""
print('多行注释')
print('多行注释')
print('多行注释')
print('多行注释')
"""
单引号
'''
print('多行注释')
print('多行注释')
print('多行注释')
print('多行注释')
'''
print() 打印
print()
函数用于打印输出内容
sep
设置打印多个内容的分隔符样式
end
设置打印结束后的内容样式
year = 2024
print(year, '是我的本命年') # 2024 是我的本命年
# sep 设置打印多个内容的分隔符样式
print(year, '是我的本命年', sep='*') # 2024*是我的本命年
# print() 打印空行
print()
# 等于下面代码执行
print(end='\n') # \n 表示换行
print(year, '是我的本命年', sep='*', end='\n') # 2024*是我的本命年
格式化输出
格式化字符 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号十进制整数,%06d 表示输出的证书显示位数,不足的地方使用 0 不全 |
%f | 浮点数 , %.2f 表示小数点后只显示两位数 |
%% | 输出%符号 |
使用:
year = 2024
month = 8
day = 19
print('今天是%d年%d月%d日' % (year, month, day)) # 今天是2024年8月19日
# %02d 补零两位数,不足两位前面补零
print('今天是%d年%02d月%d日' % (year, month, day)) # 今天是2024年08月19日
input() 输入
name = input('请输入你的名字')
print(name)
# input 默认输入的参数都为 string 类型
age = input('请输入你的年龄')
year = 2024
birth = year - int(age) # 如果不对 age 进行类型转换,则会报错
print(birth)
type() 判断数据类型
name = input('请输入你的名字: ')
print(type(name)) # <class 'str'>
print(name)
isinstance() 判断数据类型
name = 'coco'
print(type(name)) # <class 'str'>
print(isinstance(name, str)) # True
print(isinstance(name, int)) # False
变量
slogan = 'think different'
num1 = num2 = num3 = 10
name1, name2 = 'e-jike', 'yang'
print(slogan) # think different
print(num1, num2, num3) # 10 10 10
print(name1, name2) # e-jike yang
# 修改变量值 ---------------------------------------
name1 = 'e-jike@update'
print(name1) # e-jike@update
# 常量(用大写定义) 但是如果修改 同样会修改成功 ---------------------------------------
ADDRESS = 'Beijing'
print(ADDRESS) # Beijing
ADDRESS = 'Shanghai'
print(ADDRESS) # Shanghai
数据类型
类型分类:
文本类型: | str |
---|---|
数值类型: | int , float , complex |
序列类型: | list , tuple , range |
映射类型: | dict |
集合类型: | set , frozenset |
布尔类型: | bool |
二进制类型: | bytes , bytearray , memoryview |
声明方式:
变量 | 数据类型 |
---|---|
x = “Hello World” | str |
x = 29 | int |
x = 29.5 | float |
x = 1j | complex |
x = [“apple”, “banana”, “cherry”] | list |
x = (“apple”, “banana”, “cherry”) | tuple |
x = range(6) | range |
x = {“name” : “Bill”, “age” : 63} | dict |
x = {“apple”, “banana”, “cherry”} | set |
x = frozenset({“apple”, “banana”, “cherry”}) | frozenset |
x = True | bool |
x = b"Hello" | bytes |
x = bytearray(5) | bytearray |
x = memoryview(bytes(5)) | memoryview |
运算符
算术运算符, 赋值运算符, 比较运算符, 逻辑运算符, 身份运算符, 成员运算符, 位运算符
算术运算符
运算符 | 名称 | 实例 |
---|---|---|
+ | 加 | x + y |
- | 减 | x - y |
* | 乘 | x * y |
/ | 除 | x / y |
% | 取模 | x % y |
** | 幂 | x ** y |
// | 地板除(取整除) | x // y |
赋值运算符
运算符 | 实例 | 等同于 |
---|---|---|
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
//= | x //= 3 | x = x // 3 |
**= | x **= 3 | x = x ** 3 |
&= | x &= 3 | x = x & 3 |
|= | x |= 3 | x = x | 3 |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
比较运算符
运算符 | 名称 | 实例 |
---|---|---|
== | 等于 | x == y |
!= | 不等于 | x != y |
> | 大于 | x > y |
< | 小于 | x < y |
>= | 大于或等于 | x >= y |
<= | 小于或等于 | x <= y |
逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
and | 如果两个语句都为真,则返回 True。 | x > 3 and x < 10 |
or | 如果其中一个语句为真,则返回 True。 | x > 3 or x < 4 |
not | 反转结果,如果结果为 true,则返回 False | not(x > 3 and x < 10) |
成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果对象中存在具有指定值的序列,则返回 True。 | x in y |
not in | 如果对象中不存在具有指定值的序列,则返回 True。 | x not in y |
身份运算符
运算符 | 描述 | 实例 |
---|---|---|
is | 如果两个变量是同一个对象,则返回 true。 | x is y |
is not | 如果两个变量不是同一个对象,则返回 true。 | x is not y |
位运算符
运算符 | 描述 | 实例 |
---|---|---|
& | AND | 如果两个位均为 1,则将每个位设为 1。 |
| | OR | 如果两位中的一位为 1,则将每个位设为 1。 |
^ | XOR | 如果两个位中只有一位为 1,则将每个位设为 1。 |
~ | NOT | 反转所有位。 |
<< | Zero fill left shift | 通过从右侧推入零来向左移动,推掉最左边的位。 |
>> | Signed right shift | 通过从左侧推入最左边的位的副本向右移动,推掉最右边的位。 |
if 条件语句
a, b = 10, 15
# 用法一
if a > b:
print('a > b', '用法一')
# 用法二
if a > b:
print('a > b', '用法二')
elif a == b:
print('a == b', '用法二')
else:
print('a < b', '用法二')
if a >= b:
print('a >= b', '用法三')
else:
print('a <= b', '用法三')
while 循环语句
num = 1
# 用法一:
while num < 6:
print(num) # 1 2 3 4 5
num += 1
print(num, 'end') # 6 end
num2 = 1
# 用法二: break 语句
while num2 < 6:
print(num2, 'num2') # 1 2 3 4
if num2 == 4:
break
num2 += 1
print(num2, 'num2 end') # 4 num2 end
# 用法三: continue 语句
num3 = 1
while num3 < 6:
num3 += 1
if num3 == 3:
continue
print(num3, 'num3')
print(num3, 'end')
# 用法四: else 语句
i = 1
while i < 6:
print(i)
i += 1
else:
print("i 已经不小于 6 了")
for 循环语句
循环遍历列表中的元素(list)
languages = ['python', 'java', 'c++']
for l in languages:
print(l) # 输出: python java c++.
遍历 字符串
slogan = 'hello world'
for letter in slogan:
print(letter) # 输出: h e l l o w o r l d
range() 函数
for num in range(6):
# 输出: 0 range函数 1 range函数 2 range函数 3 range函数 4 range函数 5 range函数
print(num, 'range函数')
# 通过 range() 函数起始位置 : 想要从 2 开始输出, 结束位置为 5
for num in range(2, 6):
print(num) # 2,3,4,5
# 可通过第三个参数来控制步长(增量值)
for num in range(2, 10, 3):
print(num, '步进') # 2,5,8
for 循环中使用 else
for num in range(2, 10, 3):
print(num, '步进') # 2,5,8
else:
print('循环结束') # 循环结束
嵌套循环(双循环)
# 嵌套循环(双循环)
adjectives = ['happy', 'sad']
names = ['coco', 'jack', '元子']
for adj in adjectives:
for name in names:
print(adj + ' ' + name)
pass 语句
for 循环语句不能为空, 但如果循环语句为空, 则需要使用 pass 语句来避免错误
# pass 语句 : for 循环语句不能为空, 但如果循环语句为空, 则需要使用 pass 语句来避免错误
for x in [0, 1, 2]:
pass
function 函数
函数声明: def
# 声明函数 def 函数名(参数):
def my_function(name, age):
print('我叫%s,今年%d岁' % (name, age))
my_function('coco', 18) # 我叫coco,今年18岁
默认参数
# 默认参数
def my_country(country='种花家'):
print('我来自%s' % country)
my_country() # 我来自种花家
my_country('毛熊') # 我来自毛熊
返回值
# 返回值
def my_return(num1, num2):
return num1 + num2
print(my_return(16, 20)) # 36
关键字参数
# 关键字参数
def my_key_value(kid1, kid2, kid3):
print('大儿子%s,二儿子%s,三儿子%s' % (kid1, kid2, kid3))
my_key_value(kid3='coco', kid1='momo', kid2='pipi') # 大儿子momo,二儿子pipi,三儿子coco
my_key_value('coco', 'jack', 'iike') # 大儿子coco,二儿子jack,三儿子iike
任意参数
# 任意参数
def my_any(*args):
print(args[2]) # 18
print(args) # ('coco', '郑州', 18)
my_any('coco', '郑州', 18)
pass 语句
如何函数没有内容,pass 语句可以用来占位(避免报错)
# pass 语句 : 如何函数没有内容,pass语句可以用来占位(避免报错)
def myfunction():
pass
数组
len() 函数:查看列表长度
# 查看列表长度
languages = ['python', 'java', 'c++']
print(len(languages)) # 3
append 方法在列表末尾添加新的对象
# append 方法在列表末尾添加新的对象
languages.append('javascript')
print(languages) # ['python', 'java', 'c++', 'javascript']
pop 方法删除列表末尾的对象
# pop 方法删除列表末尾的对象
languages.pop(1) # 删除倒数第二个元素
print(languages) # ['python', 'c++', 'javascript']
VsCode 配置 python 环境
安装 python 插件
python
- 方便 vscode 识别 python 文件
python-snippets
- 方便 vscode 编写 python 编写代码片段(
代码提示
)autopep8
- 代码格式化,美化 .py 文件的代码格式。
- 如果安装后,格式化不生效,在 settings.json 中配置如下代码
- 参考文章
py 文件代码格式化
"[python]": {
"editor.defaultFormatter": "ms-python.python"
}
检查 vscode 是否支持 .py 文件
- 新建
.py 文件
- 输入
print("hello world")
- 运行 -->
Run python file in terminal
, 在终端运行该文件- 如果出现
hello world
则表示支持 .py 文件
vscode 和 虚拟环境
虚拟环境:
- 为了解决,多个项目之间的依赖问题, 每个项目都安装自己需要的依赖(相同依赖,不同版本)
正常python解释器文件目录:
C:\Python311
- python.exe
- Scripts
- pip3.11.exe
- Lib
- site-packages
- requests (1.1)
// 正常情况下同一个解释器 1.1 1.2 两个版本是不兼容的,必须先删除 1.1 版本后在安装 1.2 版本 , 虚拟环境可以解决这个问题
pip3.11 install requests --1.1 (A项目)
pip3.11 install requests --1.2 (B项目)
虚拟环境 python解释器文件目录:
( python -m venv .venv)
F:\crm 项目
- .venv (利用 python解释器 创建的虚拟环境)
- python.exe
- Scripts
- pip3.11.exe
- Lib
- site-packages
- requests (1.2)
- v1.py
- v2.py
虚拟环境创建步骤
- 新建一个项目 (crm)
- 打开 cmd --> 输入
python -m venv .venv
(创建虚拟环境)- 跟当前 .venv 同级目录下创建 .py 文件
- 以 cmd(command prompt) 形式打开终端,
- (.venv) C:\Users\e-jike.yang\Desktop\practice\auto\crm>
.venv
表示当前环境为虚拟环境
vscode 运行指定 python 文件
在终端执行命令
python 文件名.py