Python 数据分析之基础

Python 数据分析之基础

1. Python 基本语法

Python使用Python使用 <变量名>=<表达式> 的方式对变量进行赋值

a=1
a
--------------------
输出 
1
s = 'hello world'
s
--------------------
输出
'hello world'

1.1 数据类型

常用数据类型

在这里插入图片描述

1.1.1 字符串
(1) 字符串的定义是使用引号来定义,单引号与双引号是等价的
s='hello world'
s
--------------------
输出
'hello world'
(2) 三引号用来输入包含多行文字的字符串(可以是单引号也可以是双引号)
s='''hello
my
world'''
print(s)
--------------------
输出
hello
my
world
(3) 字符串的加法
s="hello "+"world"
s
--------------------
输出
'hello world'
(4) 字符串索引(索引号从0开始)
s='hello world'
s[1]
--------------------
输出
'e'
(5) 字符串的分割(spilt方法,可以按照自己指定的方法分割,默认是空格)
s="hello world"
s.split()
--------------------
输出
['hello', 'world']
s="hello,world"
s.split(",")
--------------------
输出
['hello', 'world']
(6) 查看字符串的长度
s="hello world"
len(s)
--------------------
输出
11
1.1.2 整数
b=100
b
--------------------
输出
100
1.1.3 浮点数
c=3.8
c
--------------------
输出
3.8
1.1.4 布尔值
a=True
a
--------------------
输出
True
a=1>2
a
--------------------
输出
False
1.1.5 空值
a=''
a
--------------------
输出
''
len(a)
--------------------
输出
0
a = None
a
--------------------
输出

1.1.6 运算符

运算符:http://www.runoob.com/python/python-operators.html#ysf4

(1) 基本运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sp7vTbz3-1667714155409)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106104050727.png)]

2**3 #幂运算
--------------------
输出
8
9%2 #取余运算
--------------------
输出
1
9//2 #取整除-返回商的整数部分
--------------------
输出
4
(2) 比较运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gB8sHG9X-1667714155410)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106104238639.png)]

1 != 2
#2 <> 2 #都是不等于的写法,貌似后面这个在3以后的版本里就不支持了
--------------------
输出
True
1>2
--------------------
输出
False
3==3 #等式两边比较
--------------------
输出
True
(3) 赋值运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBdk563m-1667714155410)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106104450878.png)]

a=2
a*=3 #a=a*3
a
--------------------
输出
6
(4) 逻辑运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iyWmihvh-1667714155411)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106104546836.png)]

  • & - and

    a&b,只有当ab都是True的时候,结果才是True,否则都是False

    a=True
    b=False
    a&b
    --------------------
    输出
    False
    
    a=3>2
    b=4>3
    a&b
    --------------------
    输出
    True
    
  • | - or

    a|b,当ab有一个为True的时候,结果就是True,两个都是False的时候结果才是False

    a=1>2
    b=4>3
    a|b
    --------------------
    输出
    True
    
  • not

    取反

    a=True
    not a
    --------------------
    输出
    False
    

1.2 数据结构

1.2.1 列表 List

Python用 [ ] 来生成列表,也可以用 list 关键字

a=[1,2,3,4,5]
a
--------------------
输出
[1, 2, 3, 4, 5]
actors=['周迅','章子怡','赵薇']
actors
--------------------
输出
['周迅', '章子怡', '赵薇']
# 列表中的元素允许各个元素不一样
b=[1,2.3,'a','b']
b 
--------------------
输出
[1, 2.3, 'a', 'b']
# 利用list生成列表
list('abcde')
--------------------
输出
['a', 'b', 'c', 'd', 'e']
列表操作

列表函数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17qMk9A7-1667714155411)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106110910002.png)]

列表方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9epeqdNP-1667714155412)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106111022159.png)]

(1) 将两个链表链接在一起
# 将两个链表链接在一起
a=[1,2,3,4,5]
b=[1,2.3,'a','b']
a+b       
--------------------
输出
[1, 2, 3, 4, 5, 1, 2.3, 'a', 'b']
(2) 索引号,从0开始
# 索引号,从0开始
a=[1,2,3,4,5]
a[0] 
--------------------
输出
1
(3) append 方法,在末尾增加一个数
# append 方法,在末尾增加一个数
a.append(6)
a
--------------------
输出
[1, 2, 3, 4, 5, 6]
(4) insert 方法,插入一个数,insert(索引号,值)
# insert 方法,插入一个数,insert(索引号,值)
a.insert(1,10)
a
--------------------
输出
[1, 10, 2, 3, 4, 5, 6]
(5) pop 方法,默认是删除最后一个元素,在里面写数字的话是写索引号
# pop 方法,默认是删除最后一个元素,在里面写数字的话是写索引号
a.pop()
a
--------------------
输出
[1, 10, 2, 3, 4, 5]
a.pop(1)
a
--------------------
输出
[1, 2, 3, 4, 5]
(6) 数据切片,左闭右开区间
  • a=[a :b]
a=[1,2,3,4,5]
a[0:3] # 数据切片,左闭右开区间
--------------------
输出
[1,2,3]
a[-1] # -1表示倒数第一个数
--------------------
输出
5
a[-3.-1] # 负索引切片,倒数
--------------------
输出
[3,4]
a[:3] # 默不写默认第一个数为0
--------------------
输出
[1,2,3]
a[-3:] # 不写的话默认从左边第一个开始或者取到右边最后一个
--------------------
输出
[3, 4, 5]
  • b=[a :b :i]

    间隔取值,前面区间仍然是左闭右开,后面为步长,同样也适用于负数的情况

b=[1,2,3,4,5,6,7,8,9]
b[2:9:3]
--------------------
输出
[3, 6, 9]
b[-1:-9:-3]
--------------------
输出
[9, 6, 3]
b[::-1] # 列表分片将步长值设置为-1, 则 相当于反转列表
--------------------
输出
[9, 8, 7, 6, 5, 4, 3, 2, 1]
1.2.2 元组 tuple

Python 的元组与列表类似,不同之处在于元组的元素不能修改

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

(1) 创建元组
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"

tup1=()      # 创建空元组
tup2=(50,)   # 元组中只包含一个元素时,需要在元素后面添加逗号
(2) 访问元组
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
 
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
--------------------
输出
tup1[0]:  physics
tup2[1:5]:  (2, 3, 4, 5)
(3) 修改元组
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 创建一个新的元组
tup3 = tup1 + tup2
print tup3
--------------------
输出
(12, 34.56, 'abc', 'xyz')
(4) 删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

(5) 元组运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ALkIknK-1667714155412)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106115242299.png)]

(6) 元组索引,截取
L = ('spam', 'Spam', 'SPAM!')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rMIznCin-1667714155412)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106115329274.png)]

(7) 元组内置函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nUXURqfZ-1667714155413)(C:\Users\zzz\AppData\Roaming\Typora\typora-user-images\image-20221106115358775.png)]

1.2.3 字典 dict

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {}

字典里面的数据可以是任何数据类型,也可以是字典

(1) 创建字典
mv = {"name":"肖申克的救赎","actor":"罗宾斯","score":9.6,"country":"USA"}
mv
--------------------
输出
{'name': '肖申克的救赎', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
(2) 访问字典里的值
mv["name"]
--------------------
输出
'肖申克的救赎'
(3) dict.keys() 以列表返回一个字典所有的键
mv.keys()
--------------------
输出
dict_keys(['name', 'actor', 'score', 'country'])
(4) dict.values() 以列表返回字典中的所有值
mv.values()
--------------------
输出
dict_values(['肖申克的救赎', '罗宾斯', 9.6, 'USA'])
(5) dict.items() 以列表返回可遍历的(键, 值) 元组数组
mv.items()
--------------------
输出
dict_items([('name', '肖申克的救赎'), ('actor', '罗宾斯'), ('score', 9.6), ('country', 'USA')])
(6) 修改字典元素
mv["name"] = "泰坦尼克号"
mv
--------------------
输出
{'name': '泰坦尼克号', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
(7) 新增字典元素
mv["director"] = "德拉邦特"
mv
--------------------
输出
{'name': '泰坦尼克号',
 'actor': '罗宾斯',
 'score': 9.6,
 'country': 'USA',
 'director': '德拉邦特'}
(8) 删除字典元素
# 删除键是'director'的条目
del mv['director'] 
mv
--------------------
输出
{'name': '泰坦尼克号', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
# 清空字典所有条目
mv.clear() 
mv
--------------------
输出
{}
# 删除字典
del mv
--------------------
输出
NameError: name 'mv' is not defined     # 因为用del后字典不再存在
1.2.4 集合set

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

(1) 自动删除重复元素
s = {2,3,4,2}
s
--------------------
输出
{2, 3, 4}
(2) 计算集合元素个数
s = {2,3,4,2}
len(s)
--------------------
输出
3
(3) 添加元素
s = {2,3,4,2}
s.add(1)
s
--------------------
输出
{1, 2, 3, 4}
(4) 移除元素
s = {2,3,4,2}
s.remove(4)
s
--------------------
输出
{2, 3}
(5) 清空集合
s = {2,3,4,2}
s.clear()
s
--------------------
输出
set()
(6) 判断元素是否在集合中存在
s = {2,3,4,2}
3 in s
--------------------
输出
True
(7) 取交集
s = {1,2,3,4,2}
s1 = {2,3,5,6}
s & s1
--------------------
输出
{2, 3}
(8) 取并集
s | s1
--------------------
输出
{1, 2, 3, 4, 5, 6}
(9) 差集
s - s1
--------------------
输出
{1, 4}

1.3 可以变对象和不可变对象

可变对象可以对其进行插入,删除等操作,不可变对象不可以对其进行有改变的操作。Python中列表,字典,集合等都是可变的,元组,字符串,整型等都是不可变的。

1.3.1 类型转换
int(3.14)
--------------------
输出
3
float(3)
--------------------
输出
3.0
s = "abcd"
type(s) # type返回数据的类型
--------------------
输出
str
list(s)
--------------------
输出
['a', 'b', 'c', 'd']
1.3.2 判断和循环
2 == 2
--------------------
输出
True
97 == 'a'
--------------------
输出
False
'a' == 'A'
--------------------
输出
False
if 2>1:
    print('hello')
--------------------
输出
hello
a = 1
b = 2
if a>b:
    print("a大于b")
else:
    print("a小于等于b")
--------------------
输出
a小于等于b
x = 0
if x>0:
    print("x为正")
elif x==0:
    print("x为0")
else:
    print("x为负")
--------------------
输出
x为0
for i in range(5):#(1,2,3,4,5):#[1,2,3,4,5]:#[1,2,3,3,4]  #列表元组集合字典字符串都行
    print(i)
--------------------
输出
0
1
2
3
4
i=1
while i<10:
    print(i)
    i=i+1
--------------------
输出
1
2
3
4
5
6
7
8
9
#判断,循环一起连用
for i in [1,2,3,4,5,6,7,8,9]:
    if(i%2)==1:
        print(i)
--------------------
输出
1
3
5
7
9
1.3.3 列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式

#range(1,11)迭代器,左闭右开,只有一个参数从0开始,两个参数是区间,三个参数最后一个数是跨度,不写的时候默认跨度为1
list(range(1,11)) 
--------------------
输出
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#列表生成平方
[x**2 for x in range(1,10)]
--------------------
输出
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[i for i in range(1,100) if i%10 == 0]
--------------------
输出
[10, 20, 30, 40, 50, 60, 70, 80, 90]
[str(x) for x in range(1,10)]
--------------------
输出
['1', '2', '3', '4', '5', '6', '7', '8', '9']
[int(x) for x in list("123456789")]
--------------------
输出
[1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0]

2. Python 函数

2.1 内置函数

(1) 绝对值
abs(-1)
--------------------
输出
1
(2) 求最大值
a =[2,3,1,-4,12,6]
max(a)
--------------------
输出
12
(3) 求最小值
min(a)
--------------------
输出
-4
(4) 求和
sum(a)
--------------------
输出
20

2.2 自定义函数

函数function,通常接受输入参数,并有返回值

它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

函数通常有以下几个特征:

  • 使用def关键词来定义一个函数
  • def后面是函数的名称,括号中是函数的参数,不同的参数用,隔开,def func():的形式是必须要有的,参数可以为空
  • 使用缩进来划分函数的内容
  • return返回特定的值,如果省略,返回None
(1) 使用函数时,只需要讲参数换成特定的值传给参数。
def add(x,y):
    a = x+y
    return a
print(add(2,3))
--------------------
输出
5
(2) Python并没有限定参数的类型,因此可以使用不同的参数类型
print(add(1,2.3))
--------------------
输出
3.3
(3) 在这个例子中,如果传入的两个参数不可以相加,那么Python将会报错
#print(add(2,'a'))  # 报错,因为参数不可以相加
print(add('2','a'))
--------------------
输出
2a
(4) 如果传入的参数与实际不符合,也会报错
add(1) # 报错,因为add有两个参数
(5) 可以在函数定义的时候给参数设定默认值,例如
def func(x,a=1,b=0,c=0):
    return a*x**2+b**x+c
func(10)
--------------------
输出
102
func(10,1,1,1)
--------------------
输出
102
(6) 一个函数也可以返回多个返回值
def f(x):
    return x**2,x**3
f(2)    # 返回元组
--------------------
输出
(4, 8)

function,通常接受输入参数,并有返回值

它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

函数通常有以下几个特征:

  • 使用def关键词来定义一个函数
  • def后面是函数的名称,括号中是函数的参数,不同的参数用,隔开,def func():的形式是必须要有的,参数可以为空
  • 使用缩进来划分函数的内容
  • return返回特定的值,如果省略,返回None
(1) 使用函数时,只需要讲参数换成特定的值传给参数。
def add(x,y):
    a = x+y
    return a
print(add(2,3))
--------------------
输出
5
(2) Python并没有限定参数的类型,因此可以使用不同的参数类型
print(add(1,2.3))
--------------------
输出
3.3
(3) 在这个例子中,如果传入的两个参数不可以相加,那么Python将会报错
#print(add(2,'a'))  # 报错,因为参数不可以相加
print(add('2','a'))
--------------------
输出
2a
(4) 如果传入的参数与实际不符合,也会报错
add(1) # 报错,因为add有两个参数
(5) 可以在函数定义的时候给参数设定默认值,例如
def func(x,a=1,b=0,c=0):
    return a*x**2+b**x+c
func(10)
--------------------
输出
102
func(10,1,1,1)
--------------------
输出
102
(6) 一个函数也可以返回多个返回值
def f(x):
    return x**2,x**3
f(2)    # 返回元组
--------------------
输出
(4, 8)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foursecond

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值