Python环境搭建及Python数据类型
- Python环境搭建
- 安装Anaconda
- Turtle Demo
- Jupyter NoteBook
- 扩展功能(代码提示)
- Python工程结构
- Python语言规范
- Python变量
- 变量名的命名原则
- Python变量的特点
- 数值类型
- 数值类型包括整型和浮点型
- 数值类型操作符
- 列表 list
- 元组 tuple
- 列表/元组操作
- range类型
- 列表、元组、range转换
- pack unpack
- 常见的序列操作
- 可变序列支持的操作
- 集合 Set
- 集合操作
- 字典 dict
- 字典操作
- 字符串
- Python定义字符串的三种形式
- 字符串操作
- None和布尔值
- 比较运算符
- 流程控制语句
- 条件选择语句
- 循环语句
- 三元表达式
- 列表生成式
- 用列表生成式创建列表
- 字典、集合生成式
Python环境搭建
安装Anaconda
Turtle Demo
Jupyter NoteBook
使用 Anaconda 安装 Python 自带 Jupyter NoteBook,在这里可以启动。默认启动创建路径是在命令输入的目录。但可以修改默认路径。
Jupyter NoteBook 修改默认路径方式:
找到Jupyter NoteBook的快捷方式,右键选择属性,目标这里可以看到%USERPROFILE%,指向的配置文件路径为起始文件路径地址。
有两种方式修改默认路径,一种是直接在属性这里修改指定路径,一种是进入到%USERPROFILE%所指向的配置文件进行修改,我们这里选择配置文件修改:
进入到其位置路径下,找到.jupyter并进入:
编辑jupyter_notebook_config.py
文件,添加:c.NotebookApp.notebook_dir = 'D:\projectPython\pythonDemo'
再次启动发现,不管是在哪个位置的cmd命令行启动,jupyter notebook生成的文件都在我们指定的默认路径D:\projectPython\pythonDemo下。
扩展功能(代码提示)
1.打开 Anaconda Navigator,点击 Environments -> base (root) -> Open Terminal
2.在弹出命令框依次输入以下 4 个命令
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
3.在Jupyter Notebook里添加Hinterland
Python工程结构
- 模块(module)
一个Python文件就是一个模块
.py source code
.pyc compiled bytecode
.pyo optimized bytecode - 包(package)
包含多个Python文件
导入已有模块:import sys
或from os import path
Python语言规范
- 缩进
Python中要求强制缩进以区分层次和代码块
缩进可以使用2个空格、4个空格、1个tab键实现,推荐只使4个空格进行缩进;因缩进方式不同会引起编译错误提示,需要手动修改统一缩进方式
PyCharm默认设置不使用“TAB缩进符”,而是设置一个TAB=4个空格 - 注释方法
单行注释:使用“#”进行注释
多行注释:使用三个单引号或三个双引号进行注释 - 常见内置函数
Python变量
变量名的命名原则
- 以_或字母开头
- 变量名以_、数字、字母组成
- 变量名大小写敏感
- 不能使用Python保留的关键字
查看Python关键字的方法:import keyword; keyword.list
Python变量的特点
- 使用变量前不需要声明
- 变量的类型不固定
- Python变量是实际值的引用
id(var)判断两个变量是否引用了同一个值
数值类型
数值类型包括整型和浮点型
数值类型操作符
列表 list
- 列表的特点
- 用来储存多个数据的数据结构
- 储存的数据是有序的,可使用位置索引
- 列表长度和元素都是可变的
- 可储存不同类型的数据
- 列表的使用方法
- 创建列表
['one', 2, [3, 4], (5, 6)]
- 使用索引获取列表中的数据
x[0], x[2], x[-1], x[-3]
- 判断值是否存在于列表中
in和not in
元组 tuple
- 元组的特点
- 储存形式与列表相似
- 与列表不同的地方
- 元素不可修改
- 长度不可改变
- 常用于安全级别较高的场景应用
- 元组的使用方法
- 创建元组
t1=(1, 2, 3, 4, 5) 或 t2='one', 2, [3, 4], (5, 6) 或 t3=tuple([1,2,3])
- 使用索引获取元组中的数据x[0], x[2], x[-1], x[-3]
- 判断值是否存在于元组中in和not in
列表/元组操作
- 通过切片获得新的列表/元组
[ start : end : step ]
start:起始索引,从0开始,-1表示结束
end:结束索引
step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值
举例: - 遍历列表/元组中的元素
for v in x:
print(v)
- zip()函数
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象
matrix = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11]]
list(zip(*matrix)) # result: [(1, 5, 9), (2, 6, 10), (3, 7, 11)]
t = (1,2,3,4)
list(zip(t))
range类型
一段不可变的数字序列
经常被用作for里面来指定循环次数
- 创建range对象
range(start,stop,step)
start的默认值是0,step的默认值是1
- range切片
x=range(10)
- 使用for循环遍历range()
for v in range(10):
print(v)
列表、元组、range转换
列表转元组
t = tuple(l) #l是列表
元组转列表
l = list(t) #t是元组
range转列表
l = list(r) #r是range
range转元组
t = tuple(r) #r是range
pack unpack
- pack
变量转换成序列
t = 1,2,3 #t是(1,2,3)
- unpack
序列转换成变量
a,b,c=t #a=1, b=2, c=3
- unpack中使用*
- 交换两个变量的值
a, b = b, a
- 在for循环中unpack元组
l = [(1,2), (3,4), (5,6)]
result=0
for x, y in l:
result += x*y
print(result)
常见的序列操作
s = [1,2,3] t = [4,5,6] n = 2
可变序列支持的操作
集合 Set
- 储存形式与列表相似
- 集合中保存的数据具有唯一性,不可重复
- 集合中保存的数据是无序的
- 往集合中添加重复数据,集合将只保留一个
- set集合常被用来去重或者过滤
- 创建一个集合
空集合:变量=set()
非空集合:变量={元素1, 元素2, ...}
- 集合操作
判断值是否存在于集合中in和not in
集合操作
- 集合的并集
newSet = s1 | s2 | s3
newSet = s1.union(s2, s3)
- 集合的交集
newSet = s1 & s2 & s3
newSet = s1.intersection(s2, s3)
- 集合的差集
newSet = s1 - s2 - s3
newSet = s1.difference(s2, s3)
- 判断是否是超集
s1.issuperset(s2)
- 判断是否是子集
s2.issubset(s1)
- 判断两个集合是否相交
s1.isdisjoint(s2)
- 集合的遍历与列表的遍历方法相同
字典 dict
- 通过键值对(key-value)来储存数据
- 储存的数据是无序的,可使用键索引
- 键是必须唯一,但值可以不唯一
- 键的类型只能是字符串、数字或元组,值可以是任何
字典操作
- 创建字典
empty_dict = {}
dict_1 = {1:'one', 2:'two', 3:'three'}
dict_2 = dict(one=1, two=2, three=3)
- 获取字典中的值
x = d[1] #1是Key,不是索引
x = d['three']
x = d.get(3, 'This value when key is not found')
- 判断值是否是字典的键
in和not in
- 遍历字典
遍历字典的键
#遍历字典的键
for k in x: #x.keys()
print(k)
遍历字典的值
#遍历字典的值
for v in x.values():
print(v)
遍历字典的键值对
#遍历字典的键和值
for k,v in x.items():
print(k,v)
字符串
Python定义字符串的三种形式
单引号str1 = 'allows embedded "double" quotes'
双引号str2 = "allows embedded 'single' quotes"
三引号(允许字符串换行)
str3= '''Three single quotes,
span multiple lines'''
str4="""Three double quotes,
span multiple lines"""
字符串操作
None和布尔值
- None
是一个特殊的常量,表示空值 - Python中很多类型可以表示布尔值
- 布尔操作符
or、and、not
比较运算符
流程控制语句
条件选择语句
if guess > secret :
print("too large")
elif guess < secret : # elif is optional
print("too small")
else : # else is optional
print("equals")
循环语句
while guessed != secret :
guessed = int(input("Guess a number: "))
else : # else is optional
print("Congratulation!")
for i in range(0, 8, 2) :
print(i)
else : # else is optional
print("Done!")
- break
break语句在循环中的作用是跳出当前循环语句
循环语句的else子句不会被执行 - continue
continue语句在循环中的作用是跳出本次循环
遇到了continue将跳过本次循环的剩余代码,直接开始下一次循环 - pass
占位语句
三元表达式
- 效果等同于一个if…else语句
result = 值1 if x<y else 值2
- 三元表达式示例
'even' if x%2 == 0 else 'odd'
'A' if x%2 == 0 else 'B' if x%5==0 else 'C'
列表生成式
用列表生成式创建列表
- 列表生成式举例
字典、集合生成式
- 字典生成式
{k:v for k,v in input if xxxx }
#将所有的key值变为大写
d = dict(a=1,b=2)
print({k.upper():v for k,v in d.items()})
#大小写key值合并, 统一以小写key值输出;
d = dict(a=2, b=1, c=2, B=9, A=5)
print({k.lower():d.get(k.lower(),0)+d.get(k.upper(),0) for k in d})
- 集合生成式
{v for v in input if xxxx}
#筛选字符串中的字母
{x for x in 'abracadabra' if x not in 'abc'}