1、安装django
查看包安装的位置
pip镜像源
镜像源名称 | 镜像地址 |
---|---|
清华源 | https://pypi.tuna.tsinghua.edu.cn/simple |
阿里云 | https://mirrors.aliyun.com/pypi/simple |
腾讯云 | https://mirrors.cloud.tencent.com/pypi/simple |
华为云 | https://repo.huaweicloud.com/repository/pypi/simple |
中科大源 | https://pypi.mirrors.ustc.edu.cn/simple |
豆瓣源 | http://pypi.douban.com/simple |
临时指定镜像源
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
永久配置pip.conf
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn # 解决 SSL 验证问题
查看配置文件路径
生成配置文件
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2、虚拟环境anaconda
python开发虚拟环境,原理都是以目录为单位保存不同python解释器和第三方模块
Anaconda(最简单)、VirtualenVs、 pyvenv
清华镜像源:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
anaconda包管理器
conda常用命令
conda env list 当前系统中所有虚拟环境
conda create -n py39 python=3.9 新建一个名为py39, 并且安装python3.9版本
conda create -n py39 python=3.9 django==4.2.5 安装虚拟环境并安装第三方包
conda activate py39 使用虚拟环境
conda deactivate 退出虚拟环境
conda install -n 虚拟环境名称 包名==版本号 虚拟环境安装包
conda env export > environment.yaml 导出虚拟环境中安装了哪些包
conda env create -f environment.yaml 根据配置文件生成虚拟环境
conda search python // 查看所有python版本
3、vscode集成python环境
Pycharm收费,采用vscode和第三方插件
4、python基础
【语法基础】debug、注释与输出函数_哔哩哔哩_bilibili
4.1 debug
跳到当前执行到的地方,会蓝色背景显示,光标自动跳转到执行的那一行上面
4.2 Print
print("haha", "xixi", sep='*') # 可打印多个数据,最后一个参数传sep=某某来作为字符串的拼接符号
print('hello', end="-") print('world') # 默认以\n结尾,故会换行,可自定义最后一个字符
模板字符串
# 设置保留n位小数 name = 'ike' age = 23 print(f"{'我是:' + name + '年龄:'}{age}")
# 设置保留n位小数 name = 'ike' age = 23 print(f"{'我是:' + name + '年龄:' + str(age)}")
4.3 变量
# 注意:python定义变量没有关键词,而是直接变量赋值,如果值不确定时需要先赋值为None var = None print(var)
保留关键字
['Flse,' Iome', 'True',' and, ' as, assert,async , await', 'break, ' class , continue def', del', elif,' else, except', finally,' for', from', gLloba', 'if, import', in' , is',' lambd',' nonLocal',' not',' or',pass, raise, retun,' try,' while', with', yield ]
4.4 数值类型
整数 int
浮点型 float
布尔型 bool
复数 complex 如z=a+bj a是实部,b是虚部,j是虚数
检测类型:用type()
4.5 字符串类型
注意:使用三对引号也能定义一个字符串,使用两对双引号会报错
格式化输出
占位符 说明 示例 %s
字符串 "Name: %s" % "Alice"
%d
十进制整数 "Age: %d" % 25
%f
浮点数 "Price: %.2f" % 3.14 默认保留6位小数,四舍五入
%e
科学计数法 "Value: %e" % 1000
%x
十六进制整数 "Hex: %x" % 255
%o
八进制整数 "Oct: %o" % 64
%%
转义 %
符号
"Tax: 10%%"
name = 'ike' print('我的名字:%s' % name)
name = 'ike' age = 23 print('我的名字:%s,年龄:%d' % (name, age))
name = 'ike' age = 23 # 可以数字设置位数,不足补空白 print('我的名字:%s,年龄:%4d' % (name, age))
name = 'ike' age = 23 # 可以数字设置位数,不足补0 print('我的名字:%s,年龄:%04d' % (name, age))
# 设置保留n位小数 f = 1.23456 print('%.2f' % f)
4.6 运算符
在 Python 中,运算符用于对变量或值进行各种操作,例如数学计算、逻辑判断、赋值等。以下是 Python 中所有运算符的分类及详细说明:
1. 算术运算符
用于数学计算:
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
+ | 加法 | 3 + 5 | 8 |
- | 减法 | 10 - 2 | 8 |
* | 乘法 | 4 * 3 | 12 |
/ | 除法 | 10 / 3 | 3.333... |
// | 整除(向下取整) | 10 // 3 | 3 |
% | 取模(余数) | 10 % 3 | 1 |
** | 幂运算 | 2 ** 3 | 8 js里面是^ |
python
print(5 + 2) # 7
print(2 ** 4) # 16 (2的4次方)
2. 比较运算符
用于比较值,返回 True
或 False
:
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
== | 等于 | 5 == 5 | True |
!= | 不等于 | 5 != 3 | True |
> | 大于 | 10 > 5 | True |
< | 小于 | 3 < 2 | False |
>= | 大于等于 | 5 >= 5 | True |
<= | 小于等于 | 4 <= 3 | False |
x = 10
print(x == 10) # True
print(3 < 2) # False
3. 逻辑运算符
用于组合条件判断:
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
and | 逻辑与 | True and False | False |
or | 逻辑或 | True or False | True |
not | 逻辑非 | not True | False |
短路行为:
and
:若第一个条件为False
,直接返回False
,不再检查第二个条件。or
:若第一个条件为True
,直接返回True
,不再检查第二个条件。
python
a = 5
print(a > 0 and a < 10) # True(链式条件判断)
print(not (a == 3)) # True
4. 赋值运算符
用于给变量赋值:
运算符 | 说明 | 示例(等价于) |
---|---|---|
= | 直接赋值 | x = 5 |
+= | 加法赋值 | x += 3 → x = x + 3 |
-= | 减法赋值 | x -= 2 → x = x - 2 |
*= | 乘法赋值 | x *= 4 → x = x * 4 |
/= | 除法赋值 | x /= 2 → x = x / 2 |
//= | 整除赋值 | x //= 3 → x = x // 3 |
%= | 取模赋值 | x %= 5 → x = x % 5 |
**= | 幂赋值 | x **= 2 → x = x ** 2 |
python
x = 10
x += 5 # x = 15
x **= 2 # x = 225
5. 位运算符
直接操作二进制位(适用于整数):
运算符 | 说明 | 示例 | 结果(二进制) |
---|---|---|---|
& | 按位与 | 0b1010 & 0b1100 | 0b1000 (8) |
` | ` | 按位或 | `0b1010 |
^ | 按位异或 | 0b1010 ^ 0b1100 | 0b0110 (6) |
~ | 按位取反 | ~0b1010 | -0b1011 (-11) |
<< | 左移 | 0b1010 << 2 | 0b101000 (40) |
>> | 右移 | 0b1010 >> 1 | 0b0101 (5) |
python
a = 10 # 二进制 1010
b = 12 # 二进制 1100
print(a & b) # 8 (二进制 1000)
print(a << 2) # 40 (左移两位)
6. 成员运算符
检查元素是否存在于容器(列表、元组、字符串等):
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
in | 存在 | "a" in ["a", "b"] | True |
not in | 不存在 | 3 not in (1, 2) | True |
python
text = "hello"
print("e" in text) # True
print(5 not in [1,2,3]) # True
7. 身份运算符
检查两个变量是否引用同一个对象:
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
is | 是同一对象 | a is b | True/False |
is not | 不是同一对象 | a is not b | True/False |
python
x = [1, 2]
y = x # y 和 x 引用同一个列表
z = [1, 2] # z 是新对象
print(x is y) # True
print(x is z) # False
8. 三元运算符
简化条件赋值:
python
result = value_if_true if condition else value_if_false
示例:
python
age = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 成年
4.7 输入函数
# 输入函数 name = input('请输入姓名') print('name', name)
4.8 转义字符
转义字符 说明 示例及输出 \n
换行符(光标移动到下一行开头) "Hello\nWorld"
→ 输出两行\t
水平制表符(Tab,通常相当于4个空格) "Name:\tAlice"
→Name: Alice
\\
表示单个反斜杠(转义反斜杠自身) "C:\\Users\\"
→C:\Users\
\"
表示双引号(避免与字符串的引号冲突) "He said \"Hi\""
→He said "Hi"
\'
表示单引号(避免与字符串的引号冲突) 'It\'s mine'
→It's mine
\r
回车符(光标移动到本行开头,覆盖前文) "Hello\rWorld"
→World
(覆盖"Hello")\b
退格符(删除前一个字符) "Hel\blo"
→Helo
\f
换页符(用于打印机换页,终端中不常用) "Page 1\fPage 2"
→ 分页效果\v
垂直制表符(类似 \t
但纵向对齐,终端中不常用)多用于排版控制 \ooo
八进制表示的 Unicode 字符( ooo
为 1-3 位八进制数)"\101"
→'A'
(八进制65)\xhh
十六进制表示的 Unicode 字符( hh
为 2 位十六进制数)"\x41"
→'A'
(十六进制65)\uhhhh
Unicode 16 位十六进制字符( hhhh
为 4 位十六进制,如\u4e2d
→中
)"\u0041"
→'A'
\Uhhhhhhhh
Unicode 32 位十六进制字符( hhhhhhhh
为 8 位十六进制)"\U0001F600"
→ 😀(笑脸表情)\0
空字符(ASCII 的 NULL,非字符串结尾的空字符) "A\0B"
→A B
(中间有空字符)
4.9 强制转换
1. 基本类型转换
函数 | 说明 | 示例 | 输出/结果 |
---|---|---|---|
int() | 转为整数(截断小数或解析数字字符串) | int(3.9) int("123") | 3 123 |
float() | 转为浮点数 | float(3) float("3.14") | 3.0 3.14 |
str() | 转为字符串 | str(100) str([1,2]) | "100" "[1, 2]" |
bool() | 转为布尔值 | bool(0) bool("Hello") | False True |
注意:
int("3.14")
会报错(需先转float
再转int
)。bool()
规则:非零数字、非空容器为True
,反之为False
。
2. 容器类型转换
函数 | 说明 | 示例 | 输出/结果 |
---|---|---|---|
list() | 转为列表 | list((1, 2)) list("abc") | [1, 2] ['a', 'b', 'c'] |
tuple() | 转为元组 | tuple([1, 2]) | (1, 2) |
set() | 转为集合(自动去重) | set([1, 2, 2]) | {1, 2} |
dict() | 转为字典(需键值对结构) | dict([(1, 'a'), (2, 'b')]) | {1: 'a', 2: 'b'} |
注意:
dict()
要求输入为可迭代的键值对(如元组列表)。set("apple")
→{'a', 'p', 'l', 'e'}
(去重且无序)。
3. 特殊转换
函数 | 说明 | 示例 | 输出/结果 |
---|---|---|---|
bytes() | 转为字节序列 | bytes("你好", encoding="utf-8") | b'\xe4\xbd\xa0\xe5\xa5\xbd' |
chr() | 整数转对应 ASCII/Unicode 字符 | chr(65) | 'A' |
ord() | 字符转对应 ASCII/Unicode 码 | ord('A') | 65 |
hex() | 整数转十六进制字符串 | hex(255) | '0xff' |
bin() | 整数转二进制字符串 | bin(10) | '0b1010' |
4.10 条件判断
1、if
# 1、if语句 score = 85 if score >= 90: print("A") elif score >= 80: print("B") # 输出:B elif score >= 70: print("C") else: print("D")
2、while
# 2、 while语句 num = 0 while num < 10: if num == 5: break print(num) num += 1
3、for
string = 'hello python' for i in string: print('i', i) for i in range(1, 6): print('j', i)
person = {"name": "Alice", "age": 25, "city": "New York"} for key, value in person.items(): print(f"遍历字典{key}: {value}") points = (1, 2), (3, 4), (5, 6) for x, y in points: print(f"元组({x}, {y})") squares = [x ** 2 for x in range(5)] print(f"列表推导式:{squares}") # 输出:[0, 1, 4, 9, 16]![]()
4、django创建项目
django-admin startproject djdemo