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%,指向的配置文件路径为起始文件路径地址。

python PyChromeDevTools文档 python filetype:doc_Python


有两种方式修改默认路径,一种是直接在属性这里修改指定路径,一种是进入到%USERPROFILE%所指向的配置文件进行修改,我们这里选择配置文件修改:

进入到其位置路径下,找到.jupyter并进入:

python PyChromeDevTools文档 python filetype:doc_大数据_02


编辑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 PyChromeDevTools文档 python filetype:doc_字符串_03


python PyChromeDevTools文档 python filetype:doc_字符串_04

Python工程结构

  • 模块(module)
    一个Python文件就是一个模块
    .py source code
    .pyc compiled bytecode
    .pyo optimized bytecode
  • 包(package)
    包含多个Python文件

导入已有模块:import sysfrom os import path

Python语言规范

  • 缩进
    Python中要求强制缩进以区分层次和代码块
    缩进可以使用2个空格、4个空格、1个tab键实现,推荐只使4个空格进行缩进;因缩进方式不同会引起编译错误提示,需要手动修改统一缩进方式
    PyCharm默认设置不使用“TAB缩进符”,而是设置一个TAB=4个空格
  • 注释方法
    单行注释:使用“#”进行注释
    多行注释:使用三个单引号或三个双引号进行注释
  • 常见内置函数
  • python PyChromeDevTools文档 python filetype:doc_大数据_05

Python变量

变量名的命名原则

  1. 以_或字母开头
  2. 变量名以_、数字、字母组成
  3. 变量名大小写敏感
  4. 不能使用Python保留的关键字
    查看Python关键字的方法:import keyword; keyword.list

Python变量的特点

  1. 使用变量前不需要声明
  2. 变量的类型不固定
  3. Python变量是实际值的引用
    id(var)判断两个变量是否引用了同一个值

数值类型

数值类型包括整型和浮点型

python PyChromeDevTools文档 python filetype:doc_大数据_06

数值类型操作符

python PyChromeDevTools文档 python filetype:doc_字符串_07

列表 list

  • 列表的特点
  1. 用来储存多个数据的数据结构
  2. 储存的数据是有序的,可使用位置索引
  3. 列表长度和元素都是可变的
  4. 可储存不同类型的数据
  • 列表的使用方法
  1. 创建列表['one', 2, [3, 4], (5, 6)]
  2. 使用索引获取列表中的数据x[0], x[2], x[-1], x[-3]
  3. 判断值是否存在于列表中in和not in

python PyChromeDevTools文档 python filetype:doc_python_08

元组 tuple

  • 元组的特点
  1. 储存形式与列表相似
  2. 与列表不同的地方
  3. 元素不可修改
  4. 长度不可改变
  5. 常用于安全级别较高的场景应用
  • 元组的使用方法
  1. 创建元组t1=(1, 2, 3, 4, 5) 或 t2='one', 2, [3, 4], (5, 6) 或 t3=tuple([1,2,3])
  2. 使用索引获取元组中的数据x[0], x[2], x[-1], x[-3]
  3. 判断值是否存在于元组中in和not in

列表/元组操作

  • 通过切片获得新的列表/元组
    [ start : end : step ]
    start:起始索引,从0开始,-1表示结束
    end:结束索引
    step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值
    举例:
  • python PyChromeDevTools文档 python filetype:doc_python_09

  • 遍历列表/元组中的元素
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

python PyChromeDevTools文档 python filetype:doc_Python_10

  • range切片
x=range(10)

python PyChromeDevTools文档 python filetype:doc_列表_11

  • 使用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中使用*
  • python PyChromeDevTools文档 python filetype:doc_字符串_12

  • 交换两个变量的值
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

python PyChromeDevTools文档 python filetype:doc_python_13

可变序列支持的操作

python PyChromeDevTools文档 python filetype:doc_Python_14

集合 Set

  • 储存形式与列表相似
  1. 集合中保存的数据具有唯一性,不可重复
  2. 集合中保存的数据是无序的
  3. 往集合中添加重复数据,集合将只保留一个
  • 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"""

字符串操作

python PyChromeDevTools文档 python filetype:doc_字符串_15

python PyChromeDevTools文档 python filetype:doc_字符串_16


python PyChromeDevTools文档 python filetype:doc_字符串_17

python PyChromeDevTools文档 python filetype:doc_大数据_18

None和布尔值

  • None
    是一个特殊的常量,表示空值
  • Python中很多类型可以表示布尔值
  • 布尔操作符
    or、and、not

比较运算符

python PyChromeDevTools文档 python filetype:doc_大数据_19

流程控制语句

条件选择语句

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'

列表生成式

用列表生成式创建列表

python PyChromeDevTools文档 python filetype:doc_大数据_20

  • 列表生成式举例

字典、集合生成式

  • 字典生成式{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'}