Python环境搭建及Python数据类型

下载安装Anaconda

在官网上下载安装包
https://www.anaconda.com/distribution/
命令安装Anaconda
Anaconda3-5.1.0-Windows-x86_64.exe
Anaconda 集成了很多数据分析常用的库及软件,如 NumPy、Pandas、Matplotlib 和 JupyterNoteBook 等。Anaconda 在 Linux 和 Windows 上都可以安装

运行Python自带Demo

Turtle Demo 是 Python 自带的一个演示程序,无论是 Anaconda 安装还是使 用原生 Python 安装都会有这个程序。

Python的工程结构

Python工程结构
模块
一个Python文件就是一个模块
包:包含多个python文件
init.py
导入已有模块
import sys
from os import path

Python开发工具

Python解释器

  • 启动方法:python

IPython交互式shell

  • 启动方法:ipython

Jupyter NoteBook

  • 基于Web的可支持实施代码的应用
  • 启动方法:jupyter notebook
    • 输入命令的目录就是工作1起始目录

Jupyter Notebook介绍

Jupyter Notebook是一个Web应用,是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于做即使的说明。
使用 Anaconda 安装 Python 自带 Jupyter NoteBook
1、创建文件
在这里插入图片描述
2、编写代码,并点击“Run”按钮执行程序
在这里插入图片描述
3、输出结果
在这里插入图片描述

PyCharm集成开发环境

JetBrains公司开发的IDE
使用方式与IDEA相似
PyCharm 是基于 IDEA 开发的 Python 集成开发环境,适用于工程类代码的开发 比如 Web 应用或爬虫应用。

Python语句块规范

缩进

Python中要求强制缩进以区分层次和代码块
缩进可以使用2个空格、4个空格、1个tab键实现
推荐只使4个空格进行缩进

  • 因缩进方式不同会引起编译错误提示
  • 需要手动修改统一缩进方式

PyCharm默认设置不使用“TAB缩进符”,而是设置一个TAB=4个空格

注释方式与常见内置函数

单行注释

  • 使用“#”进行注释

多行注释

  • 使用三个单引号或三个双引号进行注释

常见内置函数

函数名说明
type()返回对象类型
dir()函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表
input()/print()输入/打印输出
id()返回对象的内存地址

数值类型

包括整型和浮点型
在这里插入图片描述

数值类型操作符

操作符说明操作符说明
x + y加法abs(x)取绝对值
x - y减法int(x)转换成整数
x * y乘法float(x)转换成浮点数
x/y除法divmod(x,y)返回一个包含商和余数的元组
x//y除后取整pow(x,y)返回x的y次方
x%y除后取余x ** y返回x的y次方
-x负数round(x,[,n])方法返回浮点数x的四舍五入值

列表(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🔚step]
start:起始索引,从0开始,-1表示结束
end:结束索引
step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值。
对列表x = [1,2,3,4,5,6,7,8,9,0]切片

切片结果切片结果
x[1:3][2,3]x[1:6:2][2,4,6]
x[-3:-1][8,9]x[-8👎3][3,6,9]
x[:4][1,2,3,4]x[6:1:2][7,5,2]
x[6:][7,8,9,0]x[-1:-8:-3][0,7,4]

遍历列表/元组中的元素

for v in x:
	print(x)

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函数

range类型
一段不可变的数字序列
经常被用做for里面来指定循环次数
创建range对象
range(start, stop, step)
start 的默认值为0,step 的默认值为1

range对象数列
range(4)0,1,2,3
range(1,4)1,2,3
range(1,4,2)1,3
range(4,1,-1)4,3,2

range类型也支持切片
x = range(10)

切片结果切片结果
x[1:3]range(1,3)x[1:6:2]range(1,6,2)
x[-3:-1]range(7,9)x[-8👎3]range(2,9,3)
x[:4](0,4)x[6:1:-2]range(6,1,-2)
x[6: ](6,10)x[-1:8:-3]range(9,2,-3)

使用for循环遍历range()

for v in range(10):
	print(v)

列表、元组、range转换

列表转元组:
t = tuple(l) # l是列表
元组转列表
l = list(t) # t是元组
range转列表
l = list® # r是range
range转tuple
t = tuple® # 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, *c = 1,2,3,4,5		   # a=1, b=2, c=[3, 4, 5]
a, *b, c = 1,2,3,4,5		   # a=1, b=[2, 3, 4], c=5
*a, b, c = 1,2,3,4,5		   # a=[1, 2, 3], b=4, c=5
*a, b, c, d, e, f = 1,2,3,4,5    # a=[], b=1, c=2, d=3, e=4, f=5

交换两个变量的值

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
操作符说明
s+t拼接:[1,2,3,4,5,6]
s * n or n * s乘法:[1,2,3,1,2,3]
len(s)计算序列的长度3
min(s)获得序列中得最小值:1
max(s)获得序列中得最大值:3
s.index( x, [, i [, j ] ] )获得第一个x元素得索引(索引值在i 和 j 之间)
s.count(x)序列x元素出现得次数
s[i] = x更新指定索引的值
s[i:j] = t使用序列t替换s中的i到j的值
del s[i:j]等同于s[i:j] = []
s[i:j:k] = t使用序列t中的值替换s[i:j:k]的值
del s[i:j:k]删除s[i:j:k]的值
s.append(x)将值x添加到序列的末尾
s.clear()清空序列,相当于del s[:]
s.copy()创建一个s的浅拷贝
s.extend(t)使用序列t扩展序列s
s.insert(i, x)在序列s的i索引处插入值x
s.pop(i)返回序列s中索引为i的值,并将该值从序列中移除
s.remove(x)将序列中第一个值为x的元素移除
s.reverse()将序列s倒序排列

Set(集合)

储存形式与列表相似
集合中保存的数据具有唯一性,不可重复
集合中保存的数据是无序的
往集合中添加重复数据,集合将只保留一个
集合常被用来去重或者过滤
创建一个集合
空集合:变量 = set()
非空集合:变量 = {元素1,元素2,…}
集合操作
判断值是否存在于集合中
集合并集:
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 else2

三元表达式示例

'even' if x%2 == 0 else 'odd'
'A' if x%2 == 0 else 'B' if x%5 == 0 else 'C'

列表生成式

用列表生成式创建列表
列表生成式
可以生成list列表的表达式
在这里插入图片描述

字典、集合生成式

字典生成式

{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'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值