注:该学习笔记是根据曾志贤老师编写的《Python数据分析实战:从Excel轻松入门Pandas》所学习整理的笔记。
# 第一章 Python基础操作
这里写目录标题
一、变量
在定义Python中的变量名时,要遵循以下规则:
- 变量名必须以字母或下划线开始,名字中间只能由字母、数字和下划线组成。
- 变量名的长度不能超过255个字符。
- 变量名在有效范围内必须具有唯一性。
- 变量名不能与Python中的保留关键字相冲突。
- 变量名是区分大小写的。
# 数字
a = 100
# 字符串
b = 'pandas'
# 列表
c = [1, 2, 3]
二、注释
注释表示对代码行进行说明,并不运行。
# 单行注释
a = 110
# 多行注释1
'''
多行注释第1行
多行注释第2行
多行注释第3行
'''
# 多行注释2
"""
多行注释第1行
多行注释第2行
多行注释第3行
"""
# 代码注释快捷方式
# 选中需要注释的代码段,按Ctrl键+/
三、数据结构
Python中常用的数据结构有6种:数字、字符串、列表、元组、集合、字典。
其中使用频率最高的是数字、字符串、列表和字典。
查询数据类型可是用type( )函数
1、数字
数字(number)有4中类型:
- 整数型:int
- 小数型:float
- 复数型:complex
- 布尔值:bool
- 布尔值中只有False和True两种值,本质就是数字0和1
# 整数型
print(type(100))
# 返回 <class 'int'>
# 小数型
print(type(100.2))
# 返回 <class 'float'>
# 复数型
print(type(9j))
# 返回 <class 'complex'>
# 布尔值
print(type(False))
# 返回 <class 'bool'>
print(type(True))
# 返回 <class 'bool'>
print(int(False))
# 返回 0
print(int(True))
# 返回 1
2、字符串
字符串(string)的组成内容可以是数字、字母、汉字和符号等任何可以在计算机上表示出来的一串字符。
1)、字符串的表达
字符串放置在一对单引号(’ ')或双引号(" ")中,注意是英文状态下的。
name = '姓名:张三'
age = "年龄:19岁"
print(name, age)
2)、字符串切片
txt = 'Pandas超好的数据分析工具'
# 取第1个字符
print(txt[0])
# 取最后1个字符
print(txt[-1])
# 指定开头到指定结尾的字符
print(txt[6:8])
# 从开头到指定结尾的字符
print(txt[:6])
# 从指定开头到结尾的字符
print(txt[9:])
# 所有的字符
print(txt[:])
print(txt)
3、列表
列表(list)可有序地存储一组数据元素。数据元素置于一对中括号之间,元素之间用英文半角逗号分隔,如[1, 2, 3]。
列表中的元素可以是任何数据类型,并且可以对列表进行修改。
1)、列表的添加
- 添加单个元素:
- append( )
- 添加多个元素:
- extend( )
# 添加单个
lst1 = [98, 78, 100]
lst1.append(1000)
print(lst1)
# 添加多个
lst2 = [55, 66, 77]
lst2.extend([88, 99])
print(lst2)
2)、列表的删除
- 删除列表中指定下标对应的元素:
- pop( )
- 删除列表中指定名称的元素:
- remove( )
# 删除指定位置的元素
lst3 = [55, 66, 77]
lst3.pop(1)
print(lst3)
# 删除指定名称的元素,仅删除第1次找到的元素
lst4 = [98, 78, 100, 98]
lst4.remove(98)
print(lst4)
3)、列表的切片
注意:如果列表切片的结果只有1个元素,则直接显示未标量值,如果为多个元素,则返回的是列表。
lst = [96, 85, 98, 100, 99]
# 列表中的第1个元素
print(lst[0])
# 列表中的最后1个元素
print(lst[-1])
# 指定开头到指定结尾的元素
print(lst[1:3])
# 从开头到指定结尾的元素
print(lst[:3])
# 从指定开头到结尾的元素
print(lst[2:])
# 所有元素
print(lst[:])
print(lst)
4)、列表的修改
注意:如果切片结果是标量值,则提供修改的数据就是标量值;如果切片结果是列表,则提供修改的数据就是列表。
# 修改单个元素
lst1 = [96, 85, 98, 100, 99]
lst1[2] = 1000
print(lst1)
# 修改连续多个元素
lst2 = [96, 85, 98, 100, 99]
lst2[1:3] = [8, 9]
print(lst2)
4、元组
元组(tuple)可有序地存储一组数据,数据元素置于一对圆括号之间,元素之间用英文半角逗号分隔。元组中的元素可以是任何数据类型。
不能对元组中的元素作修改,只能做切片设置。
注意:如果元组中只有1个元素,则需要再这个元素的后面加上逗号,如:(100,)
tup = (96, 85, 98, 100, 99)
# 元组中的第1个元素
print(tup[0])
# 元组中的最后1个元素
print(tup[-1])
# 指定开头到指定结尾的元素
print(tup[1:3])
# 从开头到指定结尾的元素
print(tup[:3])
# 从指定开头到结尾的元素
print(tup[2:])
# 所有元素
print(tup[:])
print(tup)
# 单个元组的写法
tup1 = (100,)
5、集合
集合(set)是由唯一元素组成的无序集。数据元素置于一对花括号之间,元素之间用英文半角逗号分隔,如{1, 2, 3}。
集合里的每个元素必须保持唯一性,如果集合中的元素有重复,则在输出时会自动去重处理。
注意:集合是无序的,即集合中元素的位置无法固定,所以不能像列表、元组一样做切片。
st1 = {'苹果', '橙子', '石榴', '梨子'}
print(st1)
# 打印结果返回:{'苹果', '梨子', '橙子', '石榴'}
st2 = {'苹果', '橙子', '石榴', '梨子', '梨子', '橙子'}
print(st2)
# 打印结果返回:{'苹果', '梨子', '橙子', '石榴'}
6、字典
字典(dict)是最重要的数据类型之一。每个元素由key与值组成,key与值之间用英文半角冒号分隔,key在字典中必须保持唯一性,值可以有重复的。
元素置于花括号中,元素之间用逗号分隔。
获取字典的key与值的相关信息,有以下3种常用操作。
- 获取字典中所有的key用:keys( )
- 获取字典中所有key对应的值用:values( )
- 获取字典中所有的key与值用:items( )
dic1 = {'梨子': 99, '苹果': 95, '橙子': 91}
print(dic1['苹果'])
# 返回 95
dic2 = {'梨子': 99, '苹果': 95, '橙子': 91}
dic2['苹果'] = 75
print(dic2)
# 返回 {'梨子': 99, '苹果': 75, '橙子': 91}
dic3 = {'梨子': 99, '苹果': 95, '橙子': 91}
# 获取所有key
print(dic3.keys())
# 返回 dict_keys(['梨子', '苹果', '橙子'])
# 获取所以的key的值
print(dic3.values())
# 返回 dict_values([99, 95, 91])
# 获取所有的key与值
print(dic3.items())
# 返回 dict_items([('梨子', 99), ('苹果', 95), ('橙子', 91)])
四、控制语句
1、顺序语句
Python语句像其他编程语言一样,代码运行的顺序都是自上而下的。
注意:按顺序执行代码时,并不是绝对地自上而下运行每局代码,中途可能会做循环处理、条件分支处理等操作。
a = 100
b = 200
c = a + b
print(c)
2、循环语句
1)、for循环语句
for循环语句可以用来遍历仍和可迭代序列,如字符串、列表和字典等,在循环序列中的每个项目时,可以对项目执行处理操作。
# 循环字符串
for i in 'pandas':
print(i)
# 循环列表
for i in ['pandas', 'python', 'excel']:
print(i)
# 循环字典中的key
for key in {'pandas': 100, 'python': 99, 'excel': 88}:
print(key)
# 循环字典中的key与值
for key, item in {'pandas': 100, 'python': 99, 'excel': 88}.items():
print(key, item)
2)、while循环语句
while循环语句用来循环执行指定的代码块,当条件成立时一直循环,直到条件不成立时终止循环。
n = 0
while n < 5:
print(n)
3、分支语句
编写分支语句首先要定一个表达式,如果表达式返回值为布尔值True,则表示条件成立,如果表达式返回布尔值False,则表示条件不成立,可以根据返回的不同布尔值做不同的代码处理。
1)、单条件判断
if单条件分支语句判断指定的表达式是否成立。如果成立,则执行if下面的代码块,否则跳过。
n = 98
if n > 90:
print('yes')
else:
print('no')
2)、多条件判断
n = 76
if n > 90:
print('优')
elif n > 80:
print('良')
elif n > 60:
print('中')
else:
print('差')
3)、if三目运算
if三目运算是写一行的,如果条件判断比较简单,则可以使用此中代码编写方式。
n1 = 50
val = 'yes' if n1 > 90 else 'no'
print(val)
五、函数
函数是组织好的、可重复使用的代码,能提高应用的模块性和代码的重复利用率。
1、内置函数
内置函数无需用户定义,直接调用即可,例如print( )函数等等。
2、自定义函数
- 语法结构:
- def 函数名称(参数):
- 语句块
- return 返回值
- def 函数名称(参数):
创建自定义函数的规则如下:
- 以def关键词开头,后接函数名称和圆括号(),在接冒号。
- 传入的参数必须放在圆括号中,圆括号之间用于定义参数。
- 函数代码块内容以冒号起始,并且缩进。
- return后接函数的最终返回值。
def fun(x, y):
z = x + y
return z
print(fun(100, 99))
3、匿名函数
匿名函数是一种特殊的自定义函数,特殊在定义的函数没有名称。一般在自定义功能比较简易的函数时,可以定义成匿名函数。
- 语法结构:
- lambda [arg1[,arg2,…argn]]: expression
fun = lambda x, y: x + y
print(fun(10, 20))
4、函数的参数调用
注意:函数的参数分为必选参数和可选参数,例如自定义函数fun(x, y=1, z=0),x就是必选参数,表示必选填写;而y和z是可选参数,表示可以填写,也可以不填写(因为可选参数有默认值)。
def fun(x, y=1, z=0):
return x + y + z
# 按位置传入必选参数数据
print(fun(100))
# 按位置传入所有参数数据
print(fun(100, 200, 300))
# 按位置传入必选参数数据,按关键字传入参数数据
print(fun(10, z=20))
# 按关键字传入参数数据
print(fun(y=10, z=20, x=30))