一.安装python

打开官网 https://www.python.org,按提示下载即可
1.Python基础 - 图1

关于python2与python3的共存问题,直接在相应文件夹中将python.exe复制一份,重名为python2和python3即可。

二.集成开发环境

01 Pycharm

下载地址: https://www.jetbrains.com/pycharm/download 选择Professional专业版
1.Python基础 - 图2
在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 注释

  1. 注释让代码的可读性更强,更便于后期的维护

    1. 单行注释 #
    2. 多行注释 ''' '''""" """

    02 变量

    变量就是变化的量,变量需要先定义,后引用
    1.Python基础 - 图3
    变量的命名规则:

  2. 见名知意

  3. 由字母+数字+下划线组成
  4. 不能以数字开头
  5. 不能用python 的关键字做为变量名

变量的命名风格:

  1. 纯小写+下划线(stu_name) [python中推荐使用本命名风格]
  2. 驼峰体 (StuName)

变量值的三个特征:

  1. id 反映的是变量值的内存地址,内存地址不同id则不同 (print(id(name)))
  2. type 不同类型的值 (print(type(name)))
  3. value 值本身

python的小整数池[-5,256]:
从python解释器启动的那一刻起,就会在内存中事先申请好一些列内存空间来存放好常用的整数。

  1. m=10
  2. n=10
  3. print(id(m))
  4. print(id(n))
  5. #输出都为4562619328,这是因为以上的小整数池造成的
  1. is与==的区别:
  2. is:比较左右两个值身份id是否相等
  3. ==:比较左右两个值他们的值是否相等

03 数据类型

数字类型(整形、浮点型)

  1. 整形 int

作用:记录年龄、身份证号、个数等
定义: age = 18

  1. 浮点型 float

作用:记录身高、体重、重量等
定义:stature = 175.6

字符串 str

作用:记录描述性质的状态,例名字,性别
定义:用引号(单引号 ‘ 或双引号 “)包含的一串字符,例 good = ‘你是最好的’
使用:

  • 使用反斜杠 \ 转义特殊字符;
  • 字符串之间可以相加或相乘,但是效率很低,不推荐使用;
  • Python中的字符串不能改变。

列表 list

作用:按位置记录多个值,并且可以按照索引取指定位置的值,例多个爱好
定义:在[ ]内用逗号分隔开多个任意类型的值,每个值称为一个元素
使用:

  • List写在方括号之间,元素用逗号隔开;
  • 和字符串一样,list可以被索引和切片;
  • List可以使用+操作符进行拼接;
  • List中的元素是可以改变的。
  • 列表的元素可以是变量、表达式

1.Python基础 - 图4
实例:

  1. list = [ 'abcd', 786 , 2.23, 'zuo', 70.2 ]
  2. tinylist = [123, 'zuo']
  3. print (list) # 输出完整列表
  4. print (list[0]) # 输出列表第一个元素
  5. print (list[1:3]) # 从第二个开始输出到第三个元素
  6. print (list[2:]) # 输出从第三个元素开始的所有元素
  7. print (tinylist * 2) # 输出两次列表
  8. print (list + tinylist) # 连接列表

输出结果:

  1. ['abcd', 786, 2.23, 'zuo', 70.2]
  2. abcd
  3. [786, 2.23]
  4. [2.23, 'zuo', 70.2]
  5. [123, 'zuo', 123, 'zuo']
  6. ['abcd', 786, 2.23, 'zuo', 70.2, 123, 'zuo']

切片赋值:

  1. list1 = [0,1,2,3,4,5,6]
  2. list1[2:3] = ['a','b','c','d','e']
  3. print(list1)
  4. #切片赋值支持 替换的元素 比 被替换的元素 多

输出结果:

  1. [0, 1, 'a', 'b', 'c', 'd', 'e', 3, 4, 5, 6]

元组Tuple

作用:元组(tuple)与列表类似,不同之处在于元组的元素不能修改.
定义:在( )内用逗号分隔开多个任意类型的值,每个值称为一个元素
使用:

  1. - 与字符串一样,元组的元素不能修改。
  2. - 元组也可以被索引和切片,方法一样。
  3. - 注意构造包含 0 1 个元素的元组的特殊语法规则。
  4. - 元组也可以使用+操作符进行拼接。

如果元组中只有一个元素,必须要在后面加上逗号,像这样

  1. a = (1, )

字典 dict

作用:需要用一个变量记录多个值,但多个值是不同属性的,比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义,这就用到字典类型,字典类型是用key:value形式来存储数据,其中key可以对value有描述性的功能
定义:在{ }内用逗号分开各个键值对,键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
使用:

  1. - 字典是一种映射类型,它的元素是键值对。
  2. - 字典的关键字必须为不可变类型,且不能重复。
  3. - 创建空字典使用 { }。

实例

  1. tinydict = {'name': 'zuo','code':1, 'site': 'www.baidu.com'}
  2. print (tinydict) # 输出完整的字典
  3. print (tinydict.keys()) # 输出所有键
  4. print (tinydict.values()) # 输出所有值
  5. print (tinydict['name']) #输出name对应的值

输入结果:

  1. {'name': 'zuo', 'code': 1, 'site': 'www.baidu.com'}
  2. dict_keys(['name', 'code', 'site'])
  3. dict_values(['zuo', 1, 'www.baidu.com'])
  4. 'zuo'

布尔 bool

作用:用于记录真假这两种状态
定义:is_ok = True
使用:通常用来当作判断的条件

04 用户交互

输入input:
在python3中,input会将用户输入的所有内容都存成字符串类型
格式化输出:format

  1. #输出实例
  2. # 按顺序传值
  3. print("网站名:{}, 地址 {}".format("百度", "www.baidu.com"))
  4. print("网站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com"))
  5. # 通过字典设置参数
  6. site = {"name": "百度", "url": "www.baidu.com"}
  7. print("网站名:{name}, 地址 {url}".format(**site))
  8. # 通过列表索引设置参数
  9. my_list = ['百度', 'www.baidu.com']
  10. print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的

程序输出结果:

  1. 网站名:百度, 地址 www.baidu.com
  2. 网站名:百度, 地址 www.baidu.com
  3. 网站名:百度, 地址 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.Python基础 - 图5
注意:

  • 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
  • 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  • 3、在Python中没有switch – case语句

GIF演示
1.Python基础 - 图6

深浅copy

  1. #浅拷贝只拷贝一层,深拷贝拷贝每一层
  2. #浅拷贝
  3. a = [1,2,3,4,[5]]
  4. b = copy.copy(a)
  5. #深拷贝
  6. a = [1,2,3,4,[5]]
  7. b = copy.deepcopy(a)

练习1: 登陆功能

  1. name=input('请输入用户名字:').strip()
  2. password=input('请输入密码:').strip()
  3. if name == 'tony' and password == '123':
  4. print('tony login success')
  5. else:
  6. print('用户名或密码错误')

循环结构

99