Pyhton基础再次回顾1
Pyhton描述
Python是一种简单易学,功能强大的编程语言。它有高效率的
高层数据结构,能够简单、有效地实现面向对象编程。
Python语法简洁,支持动态输入,是解释性语言。
在大多数平台上,对于众多领域,Python都是一个理想的开发
语言,特别适合于应用程序的快速开发。
语言特点
•Computer Programming for Everybody
•1999年,Guido向DARPA阐述Python语言的特性:
•简单、直观、强大
•开源,以便任何人都可以为它做贡献
•代码像纯英语那样容易理解
•适用于短期开发的日常任务
•其它包括可扩展性、丰富的库、面向对象、高级语言、可移植性等等特点
语言缺点
•强制缩进
•构架选择太多
•性能问题
Anaconda的安装与使用
- Anaconda Python 是Python科学计算包的合集,包含了常用科学计算、数据分析、自然语言处理、绘图等包,所有的包几乎都是最新的,容量适中。
- 使用了conda和pip包管理工具,安装第三方包非常方便,避免了管理各个库之间依赖性的麻烦。
- 安装后就默认安装了python、IPython、集成开发环境Spyder和众多的包和模块。支持Python2和Python3,包括免费版、协作版、企业版等。
Anaconda Python 是完全免费的企业级的Python发行版,用于大规模数据处理、预测分析和科学计算。
Python数据分析包简介
常用数据分析包
•numpy:数组、矩阵
•scipy:统计、优化、线性代数、信号、图像处理等
•pandas:数据框、序列、数据处理、绘图
•statsmodel:统计检验、统计建模
•scikit-learn:数据变换、机器学习、交叉验证
•matplotlib:绘图
•seaborn:高级统计制图包
安装包:首选:CDM->conda install 包名
失败后尝试:CDM-> pip install 包名
python基本数据类型
string 字符串
number 数值类型 包括整数(Integer)和浮点数(float)
bool 布尔类型
time/datatime-日期类型
None-空值
complex -复数
字符串
在Python中用引号引起来的字符集称为字符串,比如:‘hello’、“my Python”、“2+3”等都是字符串。
- Python中字符串中使用的引号可以是单引号、双引号跟三引号
- 特殊字符(换行符、制表符等)可以通过转义字符‘\’迚行表示,原样输出引号内字符串可以使用在引号前加r 的形式来表示-r’’
- 字符串可以进行行运算,其中子字符串的运算经常被使用:子字符串是指字符串的子集
- 采用格式化输出可以方便地将字符串打印到屏幕上
整数与浮点数
•Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样
- int(有符号整数): 通常被简称为整数,是正负整数,不带小数点。
- float (浮点实数值): 戒浮点数,表示实数,并写入一个小数点分隔的整数部分和小数部分。浮点数也可以是科学记数法,无穷大inf也为浮点数。
•Python3中已经不再对整数和浮点数的运算结果做区分,在混合计算时,python会把整数转换为浮点数
•数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符
布尔值
•布尔值用于逻辑判断,叧有两个可能结果:True/False
•布尔值可以看做是特殊的数值类型:True=1,False=0(整型、浮点型的“0”和复数0+0j也可以表示False,其余整型、浮点型、复数数值都被判断为True)
•bool值往往是比较运算的结果,其运算包括and/or/not
- And:不运算,叧有所有都为True运算结果才是True。
- or:戒运算,叧要其中有一个为True运算结果就是True
- Not:非运算,它是一个单目运算符,把True变成False,False变成True
时间类型
•日期时间可以看做是代格式的数值类型
•Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
•Python 提供了一个time 和datetime模块可以用于格式化日期和时间。
- 时间间隔是以秒为单位的浮点小数
- 时间戳都以1970年1月1日午夜(历元)经过了多长时间来表示
- 常用日期格式化符号包括:
%y 两位数的年份表示(00-99) | %H 24小时制小时数(0-23) |
---|---|
%Y 四位数的年份表示(000-9999) | %I 12小时制小时数(01-12) |
%m 月份(01-12) | %M 分钟数(00=59) |
%d 月内中的一天(0-31) | %S 秒(00-59) |
空值
•None代表空值,类型为NoneType,支持的运算较少,也没有任何内建方法。
•None和任何其他的数据类型比较永进返回False,not None返回True。
•要注意空值(None)不pandas中的缺失值(NaN)不是一种类型,在使用pandas迚行数据处理当中,使用NaN表示数值缺失。
类型转换及识别
•类型判断:使用type()可判断对象类型,函数、类、各种数据类型的变量在python中都是对象,因此都可以使用type()迚行判断
•类型转换:常用的类型转换函数包括int、float、complex、str、bool,使用时需要保证对象是可转换成相应类型的。
表达式
•表达式是由一系列运算符和操作数组成的,用于处理数据的计算结构。
- 运算数包含常量和变量。
- 数据科学中运算符包含算术、赋值、比较、逻辑、成员。
运算数
常量运算数是固定值。
•字符值必须包含在引号中并且区分大小写。
•数值不用引号。
一个变量运算数必须是之前定义的一个变量。
运算符
示例代码
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 3 19:10:19 2019
@author: gao
"""
"""
在Python中用引号引起来的字符集称为字符串,比如:‘hello’、“my Python”、“2+3”等都是字符串。
Python中字符串中使用的引号可以是单引号、双引号跟三引号
特殊字符(换行符、制表符等)可以通过转义字符‘\’迚行表示,原样输出引号内字符串可以使用在引号前加r 的形式来表示-r’’
字符串可以进行运算,其中子字符串的运算经常被使用:子字符串是指字符串的子集
采用格式化输出可以方便地将字符串打印到屏幕上
"""
# 在Python中用引号引起来的字符集称之为字符串,比如:'hello'、"my Python"、"2+3"等都是字符串
# Python中字符串中使用的引号可以是单引号、双引号跟三引号
# In[ ]:
print ('hello world!')
# In[ ]:
c = 'It is a "dog"!'
print (c)
# In[ ]:
c1= "It's a dog!"
print (c1)
# In[ ]:
c2 = """hello
world
!"""
print (c2)
# In[ ]:
# - 转义字符'\'
# 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\
# 原样输出引号内字符串可以使用在引号前加r
#转义字符 描述
#\\ 反斜杠符号
#\' 单引号
#\" 双引号
#\a 响铃
#\b 退格(Backspace)
#\e 转义
#\000 空
#\n 换行
#\v 纵向制表符
#\t 横向制表符
#\r 回车
#\f 换页
#\oyy 八进制数,yy代表的字符,例如:\o12代表换行
#\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
print ('It\'s a dog!')
print ("hello world!\nhello Python!")
print ('\\\t\\')
# In[ ]:
print (r'\\\t\\')
# In[]
import pandas as pd
one1=pd.read_csv("C:\\Users\gao\Desktop\One.csv")
one1.head()
# In[ ]:
# - 子字符串及运算
s = 'Python'
print( 'Py' in s)
# In[ ]:
# 取子字符串有两种方法,使用[]索引或者切片运算法[:],这两个方法使用面非常广
print (s[2])
# In[ ]:
print (s[1:4])
# In[ ]:
# - 字符串连接
word1 = '"hello"'
word2 = '"world"'
sentence = word1.strip('"') + ' ' + word2.strip('"') + '!'
print(sentence)
# In[ ]:
# - 字符串格式化输出
print( 'The first word is %s, and the second word is %s' %(word1, word2))
# In[ ]
############################################################################################################
# ### 3.1.2 整数与浮点数
# Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样
i = 7
print(i)
# In[ ]:
7 + 3
# In[ ]:
7 - 3
# In[ ]:
7 * 3
# In[ ]:
7 ** 3
# In[ ]:
7 / 3#Python3之后,整数除法和浮点数除法已经没有差异
# In[ ]:
7 % 3
# 浮点数
# In[ ]:
7.0 / 3
# In[ ]:
3.14 * 10 ** 2
# In[ ]:
# 更多运算
import math
print (math.log(math.e)) # 更多运算可查阅文档
# In[ ]
############################################################################################################
# ### 3.1.3 布尔值
True and False
# In[ ]:
True or False
# In[ ]:
not True
# In[ ]:
True + False
# In[ ]:
18 >= 6 * 3 and 'py' in 'Python'
# In[ ]
############################################################################################################
# ### 3.1.4 日期时间
import time
now = time.strptime('2016-07-20', '%Y-%m-%d')
print (now)
# In[ ]:
type(now)
# In[ ]:
import datetime
someDay = datetime.date(1999,2,10)
anotherDay = datetime.date(1999,2,15)
deltaDay = anotherDay - someDay
deltaDay.days
# In[ ]
############################################################################################################
# ### 3.1.5空值none
# In[ ]:
print( None)
# In[ ]
############################################################################################################
# ### 3.1.6查看变量类型和类型转换
type(None)
# In[ ]:
type(s)
# In[ ]
############################################################################################################
# 类型转换
str(10086)
# In[ ]:
float(10086)
# In[ ]
int('10086')
# In[ ]
############################################################################################################
# ### 3.1.7表达式
#1)算数运算符
print(9//2)
print(9.0//2.0)
# In[ ]
#2)赋值运算符
a=3;c=1
c+=a
print(c)
#https://www.zhihu.com/question/20114936
# In[ ]
#3)比较运算符
a=3;b=1
print(a == b)
# In[ ]
#4)逻辑运算符
a=True;b=False
print(a and b)
# In[ ]
#5)成员运算符
str="你好北京";s="你"
#print("你在\"你好北京\"吗?",s in str)
print("%s在%s吗?"%(s, str),s in str)
# In[ ]
Python原生态数据结构
•Python常用数据结构包括:
列表(list)
列表
列表是由[]括起来的以任意顺序排列的的元素的集合,元素之间可以没有任何的联系。列表可以变化,而元组不可以。列表的索引从0开始,访问列表中元素和访问数组中的元素相似。
修改,添加,删除列表中的元素
修改:和数组相似
添加:append()函数,insert(,)函数。其中append()函数是在列表的末尾添加元素。insert函数实在列表的具体位置添加元素。
删除:del和pop()和remove()
组织列表
利用Sort()对列表进行永久排序
默认为升序,
反序sort(reversr=true)
sorted()对列表进行临时性排序
倒着打印列表:reverse()
Cars.reverae()
计算列表长度len(列表名)
List=[1,2,3,4,5,6,7,8,9,10];
#打印列表
print(List);
#打印列表某个元素
print(List[1]);
#在列表末尾添加元素
List.append(11);
print(List);
#在列表的第一个位置插入元素0
List.insert(0,0);
print(List);
#删除列表中元素0
List.remove(0);
print(List);
#将列表中某个元素弹出
a=List.pop();
print(a);
print(List);
#删除列表10的元素
del(List[9]);
print(List)
#对列表进行永久排序,反序
List.sort(reverse=True);
print(List)
#到着打印列表,永久修改
List.reverse()
print(List);
#确定列表长度
print(len(List));
元组/序列(tuple)
•元组是丌可变的列表,没有增,删,改的权限
•元组里面的元素也是迚行索引计算。元组的符号是(),可迚行的操作包括:
- 索引
- 对元素计数,对元组长度计数
- 计算元素位置
- 查看元素是否在元组中
- ……
•与列表不同的是,列表里面的元素的值可以修改,而tuple里面的元素的值不能修改(没有append、insert等方法),叧能读取。因为tuple不可变,所以代码更安全。
字典和集合
a={‘高春辉’:‘爱学习’}
print(‘高春辉->’+a[‘高春辉’])
#高春辉为键,爱学习为值
#创建字典方法一
字典的每个键值为一个项。
其中字典的键必须是独一无二的,值可以取任何数据类型,但必须是不可改变的(字符串,数,元组)
#创建字典方法二
dict1=dict(((‘F’,70),(‘a’,80),(‘g’,90)))
print(dict1)
字典的内置方法
#字典的内置函数
print(len(dict1))#计算字典项的个数
print(str(dict1))#输出字典,以字符串的形式
print(type(dict1))#输出变量的数据类型
#字典的内置方法
#字典名.clear()删除字典内的所有元素
dict1.clear()
print(dict1)
#字典名.copy()实现字典的浅复制
dict2={‘name’:‘Runoob’,‘Age’:7,‘Class’:‘First’}
dict3=dict2.copy()
print(dict2)
print(dict3)
#字典名.fromkeys() 创建一个新的字典
seq = (‘name’, ‘age’, ‘sex’)
dict = dict.fromkeys(seq)
print(“新的字典为 : %s” % str(dict))
dict = dict.fromkeys(seq, 10)
print(“新的字典为 : %s” % str(dict))
#key in dict 判断键是否在字典里面
#字典名.items()以列表返回可以遍历的元组数组
dict = {‘Name’: ‘Runoob’, ‘Age’: 7}
print(“Value : %s” % dict.items())
#字典名.keys() 返回一个迭代器,可以使用list()来转换为列表
dict={‘Name’:‘高春辉’,‘hoby’:‘爱学习’}
print(dict.keys())
dict=list(dict.keys())
print(dict)
#字典名.setdefault(key,default=None) 和get()类似,如果键不在字典里,建辉添加键并将其值设为default
dict={‘Name’:‘高春辉’,‘hoby’:‘爱学习’}
print(dict.setdefault(‘Name’,‘h’))
print(dict.setdefault(‘age’,‘21’))
print(dict)
#字典名.update(dict2)把字典dict2的项更新到dict里
dict={‘Name’:‘高春辉’,‘hoby’:‘爱学习’}
dict2={}
dict2.update(dict)
print(dict2)
#字典名.values(),返回一个迭代器,可以用list()转换为列表
dict={‘Name’:‘高春辉’,‘hoby’:‘爱学习’}
print(list(dict.values()))
#字典名.pop() 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
dict={‘Name’:‘高春辉’,‘hoby’:‘爱学习’}
str=dict.pop(‘Name’)
print(str)
#字典名.popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)。
dict={‘Name’:‘高春辉’,‘hoby’:‘爱学习’}
print(dict.popitem())
posted on 2019-09-03 19:57 一颗小白杨站在哨所旁 阅读(113) 评论(0) 编辑 收藏 举报