一.安装python
打开官网 https://www.python.org,按提示下载即可
关于python2与python3的共存问题,直接在相应文件夹中将python.exe复制一份,重名为python2和python3即可。
二.集成开发环境
01 Pycharm
下载地址: https://www.jetbrains.com/pycharm/download 选择Professional专业版
在Pycharm中可以在新建项目时,建立虚拟环境,其实就是将python环境复制到新建项目的指定位置,这样当这个项目完成以后,就可以删掉这个虚拟环境,项目开发中安装的三方库就全部删除了。否则原生的环境中会三方库越来越多,用不用都在。
02 Anaconda
官网地址:https://www.anaconda.com/distribution/
国内镜像地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
验证是否安装成功:
Win+r按键——> cmd 进入DOS——> conda (有提示就是安装成功)
自带编辑器:
在dos中输入jupyter notebook打开常用的编辑器,该命令启动时不要关闭dos窗口,想要关闭jupyter notebook时,在dos窗口按ctrl+c可以结束jupyter的运行
三.Python语法基础
01 注释
注释让代码的可读性更强,更便于后期的维护
单行注释 #多行注释 ''' '''或""" """
02 变量
变量就是变化的量,变量需要先定义,后引用

变量的命名规则:见名知意
- 由字母+数字+下划线组成
- 不能以数字开头
- 不能用python 的关键字做为变量名
变量的命名风格:
- 纯小写+下划线(stu_name) [python中推荐使用本命名风格]
- 驼峰体 (StuName)
变量值的三个特征:
- id 反映的是变量值的内存地址,内存地址不同id则不同 (print(id(name)))
- type 不同类型的值 (print(type(name)))
- value 值本身
python的小整数池[-5,256]:
从python解释器启动的那一刻起,就会在内存中事先申请好一些列内存空间来存放好常用的整数。
m=10n=10print(id(m))print(id(n))#输出都为4562619328,这是因为以上的小整数池造成的
is与==的区别:is:比较左右两个值身份id是否相等==:比较左右两个值他们的值是否相等
03 数据类型
数字类型(整形、浮点型)
- 整形 int
作用:记录年龄、身份证号、个数等
定义: age = 18
- 浮点型 float
作用:记录身高、体重、重量等
定义:stature = 175.6
字符串 str
作用:记录描述性质的状态,例名字,性别
定义:用引号(单引号 ‘ 或双引号 “)包含的一串字符,例 good = ‘你是最好的’
使用:
- 使用反斜杠 \ 转义特殊字符;
- 字符串之间可以相加或相乘,但是效率很低,不推荐使用;
- Python中的字符串不能改变。
列表 list
作用:按位置记录多个值,并且可以按照索引取指定位置的值,例多个爱好
定义:在[ ]内用逗号分隔开多个任意类型的值,每个值称为一个元素
使用:
- List写在方括号之间,元素用逗号隔开;
- 和字符串一样,list可以被索引和切片;
- List可以使用+操作符进行拼接;
- List中的元素是可以改变的。
- 列表的元素可以是变量、表达式

实例:
list = [ 'abcd', 786 , 2.23, 'zuo', 70.2 ]tinylist = [123, 'zuo']print (list) # 输出完整列表print (list[0]) # 输出列表第一个元素print (list[1:3]) # 从第二个开始输出到第三个元素print (list[2:]) # 输出从第三个元素开始的所有元素print (tinylist * 2) # 输出两次列表print (list + tinylist) # 连接列表
输出结果:
['abcd', 786, 2.23, 'zuo', 70.2]abcd[786, 2.23][2.23, 'zuo', 70.2][123, 'zuo', 123, 'zuo']['abcd', 786, 2.23, 'zuo', 70.2, 123, 'zuo']
切片赋值:
list1 = [0,1,2,3,4,5,6]list1[2:3] = ['a','b','c','d','e']print(list1)#切片赋值支持 替换的元素 比 被替换的元素 多
输出结果:
[0, 1, 'a', 'b', 'c', 'd', 'e', 3, 4, 5, 6]
元组Tuple
作用:元组(tuple)与列表类似,不同之处在于元组的元素不能修改.
定义:在( )内用逗号分隔开多个任意类型的值,每个值称为一个元素
使用:
- 与字符串一样,元组的元素不能修改。- 元组也可以被索引和切片,方法一样。- 注意构造包含 0 或 1 个元素的元组的特殊语法规则。- 元组也可以使用+操作符进行拼接。
如果元组中只有一个元素,必须要在后面加上逗号,像这样
a = (1, )
字典 dict
作用:需要用一个变量记录多个值,但多个值是不同属性的,比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义,这就用到字典类型,字典类型是用key:value形式来存储数据,其中key可以对value有描述性的功能
定义:在{ }内用逗号分开各个键值对,键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
使用:
- 字典是一种映射类型,它的元素是键值对。- 字典的关键字必须为不可变类型,且不能重复。- 创建空字典使用 { }。
实例
tinydict = {'name': 'zuo','code':1, 'site': 'www.baidu.com'}print (tinydict) # 输出完整的字典print (tinydict.keys()) # 输出所有键print (tinydict.values()) # 输出所有值print (tinydict['name']) #输出name对应的值
输入结果:
{'name': 'zuo', 'code': 1, 'site': 'www.baidu.com'}dict_keys(['name', 'code', 'site'])dict_values(['zuo', 1, 'www.baidu.com'])'zuo'
布尔 bool
作用:用于记录真假这两种状态
定义:is_ok = True
使用:通常用来当作判断的条件
04 用户交互
输入input:
在python3中,input会将用户输入的所有内容都存成字符串类型
格式化输出:format
#输出实例# 按顺序传值print("网站名:{}, 地址 {}".format("百度", "www.baidu.com"))print("网站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com"))# 通过字典设置参数site = {"name": "百度", "url": "www.baidu.com"}print("网站名:{name}, 地址 {url}".format(**site))# 通过列表索引设置参数my_list = ['百度', 'www.baidu.com']print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
程序输出结果:
网站名:百度, 地址 www.baidu.com网站名:百度, 地址 www.baidu.com网站名:百度, 地址 www.baidu.com
05 运算符
算术运算符
以下假设变量a为10,变量b为21:
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 - 两个对象相加 | a + b 输出结果 31 |
| - | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
| * | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
| / | 除 - x 除以 y | b / a 输出结果 2.1 |
| % | 取模 - 返回除法的余数 | b % a 输出结果 1 |
| ** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
| // | 取整除 - 向下取接近商的整数 | >>>9//2 4 >>>-9//2 -5 |
比较运算符
以下假设变量a为10,变量b为20:
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
| != | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
| > | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
| < | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
| >= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
| <= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
赋值运算符
以下假设变量a为10,变量b为20:
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符 | c = a 等效于 c = c a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效于 c = c % a |
| **= | 幂赋值运算符 | c = a 等效于 c = c a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
| := | 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符。 | 在这个示例中,赋值表达式可以避免调用 len() 两次: if(n := len(a))>10: print(f”List is too long ({n} elements, expected <= 10)”) |
逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔”与” - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 | (a and b) 返回 20。 |
| or | x or y | 布尔”或” - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
| not | not x | 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
区分优先级:not > and > or
身份运算符
身份运算符用于比较两个对象的存储单元
| 运算符 | 描述 | 实例 |
|---|---|---|
| is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
| is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
成员运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
运算符的优先级
| 运算符 | 描述 |
|---|---|
| ** | 指数 (最高优先级) |
| ~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
| * / % // | 乘,除,求余数和取整除 |
| + - | 加法减法 |
| >> << | 右移,左移运算符 |
| & | 位 ‘AND’ |
| ^ | | 位运算符 |
| <= < > >= | 比较运算符 |
| == != | 等于运算符 |
| = %= /= //= -= += = *= | 赋值运算符 |
| is is not | 身份运算符 |
| in not in | 成员运算符 |
| not and or | 逻辑运算符 |
06 流程控制
分支结构

注意:
- 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 3、在Python中没有switch – case语句
GIF演示
深浅copy
#浅拷贝只拷贝一层,深拷贝拷贝每一层#浅拷贝a = [1,2,3,4,[5]]b = copy.copy(a)#深拷贝a = [1,2,3,4,[5]]b = copy.deepcopy(a)
练习1: 登陆功能
name=input('请输入用户名字:').strip()password=input('请输入密码:').strip()if name == 'tony' and password == '123':print('tony login success')else:print('用户名或密码错误')
循环结构
99
