【Python学习】Part 1 基础知识(1)——基本操作
Part 1 基础知识(1)——基本操作
- 一、Python的基本操作
- 1. Python变量和简单数据类型
- (1)两种数字类型
- (2)列表
- a. 特点:
- b. 列表两种表示方法
- c. 其他
- d. 列表推导式
- (3)字典
- a. 直接创建
- b. 赋值:通过键值对
- c. 其他功能
- (4)集合
- 特点:
- (5)元组
- (7)布尔值
- 2. Python的基本操作
- (1)if条件判断
- (2)for循环
- a. 简介
- b. try-except:对循环中的错误直接报错,而不是直接停止
- (3)while循环
- 3.函数、模块和包、库
- (1)函数:组织好的代码段
- a. 定义函数:
- b. lambda匿名函数
- i. 特点
- ii. 创建lambda函数
- iii.功能
- c. 常见函数
- (2)类class:
- (3)模块module:
- (4)包package:
- (5)库library:
- a.简介
- b.其他常用第三方库
- 二、使用案例
- 1. 白噪音序列作图
一、Python的基本操作
1. Python变量和简单数据类型
(1)两种数字类型
整数型:integer_=1 #整数
浮点数:float_=0.1 #浮点数
(2)列表
a. 特点:
1、有序;因此若元素内容相同,但是序号不同,两个列表也不是相等的
2、可以用list()函数或者方括号[]创建,元素之间用逗号’,‘’分隔;
3、使用索引来访问元素,可切片;
4、可以有重复元素。
b. 列表两种表示方法
a=list()
b=[]
c. 其他
list_=["one",2,[1,2,3]] #列表内可以为多种形式的元素
list_[0] #列表索引,从0开始
list_.append("four") #在列表中添加“four”
list_.extend(lst) #向list中添加列表lst
list_.count(a) #统计list中a的个数
list_.pop(1) #删除list中索引的元素
list_.remove("one") #删除list中的元素
list_.clear() #列表清空
del(list_) #删除列表
list_[0:3] #取首不取尾
list_[-3:] #倒数第三个到最后一个
len(list_) #查看列表长度
print(a1 + a2) #列表a1和a2拼接
d. 列表推导式
实现步骤:
语法格式:listname=[expression for variable in subject (if condition)]
- 先复制X
[x for x in X] - 再对x进行操作
[x*x for x in X]
// Example 1
#对满足条件的x进行操作
[x*x for x in X if x>5]
// Example 2
words = ['Life', 'is', 'short', 'so', 'we', 'use', 'Python', 'python', 'is', 'easy', 'to', 'learn', 'and', 'easy', 'to', 'use']
lower_words = [w.lower() for w in words]
lower_words
wordset = set(lower_words)
[(w,lower_words.count(w)) for w in wordset]
// Example 3 字符操作
rankschool=["清华大学 1","北京大学 2","复旦大学 3","上海交通大学 4"]
school4=[i.split(' ')[0] for i in rankschool]
school4
(3)字典
字典:键-值对;
a. 直接创建
citydata=dict(city=['北京市','上海市','南京市'])
dict_={"1":"one","2":"two","3":"three"}
b. 赋值:通过键值对
citydata2={}
citydata2["city"]=['北京市','上海市','南京市']
c. 其他功能
len(citydata2) #查看长度
dict_["1"]="ONE" #替换各个键
dict_["1"]=["one","ONE"] #嵌入列表
dict_["1"] #字典索引
dict_["5"]="five" #在字典中添加键值对
dictdata.items() #返回dictdata所有item#遍历所有键值对for x,y in dictdata.items() :print(x,y)
dictdata.keys() #返回dictdata的所有关键词
dictdata.values() #返回dictdata的所有值
dictdata.get(keystr) #获取关键词keystr对应的值
dictdata[keystr] #获取关键词keystr对应的值
(4)集合
特点:
1、无序;
2、可以用set()函数或者方括号{}创建,元素之间用逗号”,”分隔;
3、不可索引,不可切片;
4、不可以有重复元素。
names2 = ['David', 'Mary', 'David', 'Swift', 'David'] #集合是无序的,所以当中也不能重复;集合可以用来去重;可以用set()函数或者方括号{}创建,元素之间用逗号”,”分隔;
#两个集合内的元素内容相同但是顺序不同,两个集合还是一样的
name_set = set(names2)
name_set.add('William') #setdata.add(ele) 向setdata中加入ele
(5)元组
name_tuple = ('David', 'Mary', 'Henry', 'Swift', 'Lenard') #元组是圆括号
形似列表,也可拼接、拆包和切片
数据不可更改
// Example 3 元组拼接
d = {'x': 'A', 'y': 'B', 'z': 'C' }
d.items()//1 自己复制d.items()自己
[i for i in d.items()]//2 对任何一个元素都要进行字符串的拼接操作
[i[0]+i[1] for i in d.items()]
(7)布尔值
用于逻辑判断,一般与if结合使用。
x = 4 in [1,2,4] #True
y = 4 not in [1,2,4] #False
2. Python的基本操作
(1)if条件判断
condition = False
if condition:print('condition为True')
else:print('condition为False')
(2)for循环
a. 简介
for循环可以遍历任何可迭代对象,如一个列表或者一个字符串
一般格式:
for <varible> in <sequence>:<statements>
else:<statements>
// Example 1
b=[1,2,3,4]
for i in b:print(i)//上述for循环可缩写为a=[i for i in b]
// Example 2
for i in range(6):print(i)
// Example 3 计算1^2+2^2+……+100^2
result=0
for i in range(1,101):result=result+1**2
print(result)
b. try-except:对循环中的错误直接报错,而不是直接停止
// Example 1 10作为被除数,取余数
for i in [10,2,0,4,5]:try:print(10%i)except:print("错误")
(3)while循环
一般格式:
while 判断条件(condition):
执行语句(statements)······
// Example 1
i=5
while i>=0: //i>=0是终止条件,即未达到终止条件前,继续循环下面的语句print(i)i=i-1
3.函数、模块和包、库
(1)函数:组织好的代码段
a. 定义函数:
def函数常见参数定义&调用方式
- 位置参数
- 关键词参数
- 默认参数
#位置参数
def hello1(name,address):return '大家好!我是{0},来自{1}'.format(name,address) #0对应name,1对应address
hello1('萝卜头','地球')
#关键词参数
def hello2(name,address):return '大家好!我是{0},来自{1}'.format(name,address)
hello2(name='萝卜头',address='地球') ##直接通过关键词赋值
#默认参数
def hello3(name,address,major='会计学'): #有默认值的参数需要放在后面return '大家好!我是{0},来自{1},专业为{2}'.format(name,address,major)
hello3('萝卜头','地球')
b. lambda匿名函数
i. 特点
- 匿名函数是指没有声明函数名称的函数。
- lambda函数的行为方式与使用def关键字声明的一般函数相同。
- lambda函数可以接受任意数量的参数,但函数只能包含一个表达式。
- 表达式是lambda函数执行的一段代码,它可以返回任何值,也可以不返回任何值。
- lambda函数可以返回函数对象。
ii. 创建lambda函数
语法: lambda arguments(s): expression
x = lambda a,b,c: a+b*a+c
print(x(1,2,3)) //1,2,3分别对应a,b,c,为各个参数,返回函数值
iii.功能
功能1:赋值
功能2:将lambda函数作为参数传递给其他参数
//Example 1 列出0-20之间不能整除3的数//原函数一一定义
def odd(x):return x%3
X=range(21)
output=filter(odd,X) ##filter(函数)为过滤序列,即过滤掉不符合条件的元素
print(list(output)) ##filter函数返回值是一个数组,因此需要用list()函数将其转化为列表//用lambda函数直接替换上面的odd函数,作为参数传递给fileter函数
print(list(filter(lambda x:x%3,range(21))))
功能3:返回值
// Example 2 输出a的N次方
def anfunc(n):return lambda x:x**n
cube=anfunc(3) #cube函数为:a的3次方
cube(2) #将2赋值给x,即求2的3次方
功能4:简化条件语句,将if……else语句缩减为单一的条件表达式
// Example 3 是否可以被3整除
divide3=lambda x:"True" if x%3==0 else "False"
print(divide3(20))//等价于下面的
def divide3(n):if n%3==0:return("True")else:return("False")
print(divide3(20))
c. 常见函数
函数 | 功能 | 例子 | 运行结果 |
---|---|---|---|
abs(a) | 对a取绝对值 | abs(-1) | 1 |
max(lst)、min(lst) | 寻找lst中的最大、最小值 | max([3, 2, 9]) | 9 |
sum(lst) | 对lst内所有数字求和(也可元组、字典) | sum([3, 2, 9]) | 14 |
sorted(lst, reverse) | 对lst排序; 参数reverse为布尔值控制升降序 | sorted([3, 2, 9]) sorted([3,2,9], reverse=True) |
[2, 3, 9] [9, 3, 2] |
range(start, end, step) | 生成以步长step,生成从start到end的数列,默认step=1,结果取不到end | list(range(1,5)) | [1, 2, 3,4] |
int(string) | 将字符串数改为整数型 | int(‘9’) | 9 |
float(int/str) | 将int或str改为浮点型 | float(9)、float(‘9’) | 9.0 |
list(iterable) | 将可迭代对象为列表。这里的iterable可以为字符串,可以是列表 |
list(range(1,5)) list(range(1, 10, 2)) |
[1,2,3,4] [1, 3, 5, 7, 9] |
enumerate(lst) | 返回带有索引值的序列seq,需要list(seq)处理后才能看到seq | list(enumerate([‘a’, ‘b’, ‘c’])) | [(0,‘a’), (1, ‘b’), (2, ‘c’)] |
tuple(lst) | 将lst变为tuple | tuple([1,2,3]) | (1,2,3) |
set(lst) | 将lst变为集合 | set([1,4,4,4,3]) | {1,3,4} |
eval(expression) |
执行一个字符串表达式 str_expression 是字符串表达式,可以是变量、函数等 |
eval(‘1+1’) | 2 |
zip(lst1,lst2…) | 将lst1,lst2…合并,返回zip对象。需要list处理一下zip对象 | list(zip([1,2,3],[4,5,6])) | [(1, 4), (2, 5), (3, 6)] |
type(x) | 查看X的类型 | type(‘2’) | <class ‘str’> |
help(x) | 查看X的相关信息 | help([1, 2]) | Help on list object… |
map(func, lst) | 对lst中的每一个个体都进行func操作,将func运算映射到lst上每个元素 | list(map(sum, [[1,1], [1,2]])) | [2, 3] |
print(value, end=‘\n’) | 打印value | print(‘abc’) | abc |
open(file, mode=‘r’, encoding=None) | 打开file文件;mode 操作方式们,最常用的是r和a+。r读取, a+是追加写入;encoding是file的文件编码,主要是utf-8和gbk |
open(‘data/test.txt’, encoding=‘utf-8’).read() 读取数据 #相对路径 data #绝对路径 C:Users\thunderhit\Desktop\Python数据分析入门\02-Python语法入门\data #以后都要用相对路径 |
在已有的文件内插入内容 f = open(‘data/test2.txt’, mode=‘a+’, encoding=‘utf-8’) f.write(‘\n还需继续努力’) f.close() |
(2)类class:
描述相同的属性和方法的对象的集合,定义该集合中每个对象所共有的属性和方法。对象是类的实例。
(3)模块module:
以.py为后缀的文件,通常包含一些常数和函数。
(4)包package:
将模块、函数放到文件夹下面,通过“包.模块名”制定模块
(5)库library:
a.简介
由诸多函数组成,也可以包括模型和包
语法:import module1 [,module2[,…moduleN]
导入包:法1:import numpy as np //np为简写法2:from math import exp as e //从一个包中导入某部分命名为法3:from math import * //将一个包完整导入
b.其他常用第三方库
第三方扩展库 | 功能简介 |
---|---|
Numpy | 支持数组计算,以及相应的高效的处理函数 |
Pandas | 强大、灵活的数据分析和探索工具 |
Scipy | 提供矩阵支持,以及矩阵相关的数组计算模块 |
Matplotlib | 强大的数据可视化工具,作图库 |
StatsModels | 统计建模和计量经济学,包括描述统计、统计模型估计和推断 |
Scikit-Learn | 支持回归、分类、聚类等强大的机器学习库 |
Keras | 深度学习库,用于建立神经网络以及深度学习模型 |
Gensim | 用来做文本主体模型的库,文本挖掘分析 |
二、使用案例
1. 白噪音序列作图
在任何两个时点的随机变量都不相关,序列中没有任何可以利用的动态规律
import numpyasnp #导入包
from matplotlib import pyplot as plt #导入包
x=np.arange(1,10) #调用numpy包创建一个数列,如果直接定义x=[1,2,3],此时数据类型不能用来生成下面的y数列
y=3*x+1 #创建一个数列
plt.title("Matplotlib demo") #调用pyplot包定义图的标题
plt.xlabel("x axis caption") #调用pyplot包定义x轴的标题
plt.ylabel("y axis caption") #调用pyplot包定义y轴的标题
plt.plot(x,y) #调用pyplot包作图,可以只写plt.plot(y) ,此时x默认为0,1,2,3,4
plt.show() #让这个图显示出来。在anaconda中可以不需要这个语句也可以显示,但是在一般的python语言中需要。#--------version1--------
import numpy as np
import matplotlib pyplot as plt
plt.rcParams['figurefigsize']=(10,6) #控制图形大小
E_values=np.random.randn(100) #调用numpy包模拟100个正态随机变量的值
plt.plot(evalues) #调用pyplot包作图,模拟白噪音的震荡图
plt.show()#--------vers1on2--------
ts_length=100 #定义一个100整数变量
e_values = [] #创建一个空的列表
for i in range(ts_length): #用for循环e=np.random.randn()e_values.append(e) #在列表中添加新的元素,即按顺序(1-100)生成100个随机数,依次添加到列表中
plt.plot(e_values)
plt.show()#--------version3--------
ts_length = 100
e_values=[]
i=0 #用while循环生成100个随机值
while i < ts_length:e=nprandom.randn() e_values.append(e) i=i+1
plt.plot(e_values)
plt.show()#--------version4--------
def white_noise_plot(number): #将上面的代码改进成函数形式ts_length=number #定义数字的数量e_values=[] i=0while i<ts_length:e=np.random.randn() e_values.append(e) i=i+1plt.plot(e_values) plt.show() #注意缩进一致性
white_noise_plot(100)
【Python学习】Part 1 基础知识(1)——基本操作相关推荐
- Python学习之并发基础知识
8 并发编程 8.1 基础知识 8.1.1 操作系统的定义 操作系统是存在于硬件与软件之间,管理.协调.调度软件与硬件的交互. 资源管理解决物理资源数量不足和合理分配资源这两个问题, 通俗来说,操作系 ...
- Python学习6 字典基础知识和常用函数
字典概念 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据.为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 ...
- python学习记录(基础知识+案例实现)
day01 1.变量 """ 变量在内存中创建一个空间,专门存储数据name = zhangsan命名规范不能以数字.特殊字符开头,不能以关键字命名英文单词.数字.下划线 ...
- Python学习5 元组基础知识和常用函数
元组概念 元组:a=(1,23) 列表:a= [1,23] 创建和访问元组 Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串. 元组与列表类似,也用整数来对 ...
- Python学习4 列表基础知识和常用函数
列表 1.格式 2.增删改查 列表下标: 0–n-1 -n-(-1) #对列表进行切片 #0-(n-1) #-n-(-1) list=['dq','python','mm'] print(list[0 ...
- Python学习之路-基础知识1
永远的Hello World! print("Hello World!") >>Hello World! 数据类型 Number类型: 数值类型,用于存储数字 Inte ...
- Python学习笔记(基础知识第三篇:列表、元组、字典、集合)
一.列表 1.列表知识 定义一个空的列表,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). 打印出第一个元素,列表索引值以0为开始值,-1为从末尾的开始位置. 列表可以使用 ...
- Python学习之路-基础知识2-文件操作
文件操作 现有文件test.txt内容如下: 床前明月光, 疑是地上霜. 举头望明月, 低头思故乡. >>>f = open("test.txt",&qu ...
- python学习课程 0基础学Python视频教程
python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...
- 学python需要什么基础知识-没学过Python先要学习哪些基础知识?
零基础学Python应该学习哪些入门知识 关于零基础怎么样能快速学好Python的问题,百度提问和解答的都很多,你可以百度下看看.我觉得从个人自学的角度出发,应从以下几个方面来理解: 1 为什么选择学 ...
最新文章
- 必看!程序员逃生指南
- Quartz.Net—MisFire
- Spring-Security-入门(一):登录与退出
- ActiveMQ组件使用方法
- springmvc+mybatis+mysql+maven
- python阻塞和非阻塞_Python基础必备知识:同步异步阻塞非阻塞
- ora-01740: 标识符中缺失双引号_sql语句中单引号的使用
- 成为Java流大师–第4部分:数据库流
- 电脑无法启动故障的10种解决方法
- mysql数据库初识实训总结_MySQL(数据库)的初识
- ubuntu 下 lighttpd 支持 mod_cgi 的配置文件
- Mac无法开机?如何修复
- php 正则断言里面使用*+
- 2021年新版阿里云服务器价格表(收费标准报价)
- 蓦然回首,灯火阑珊——自考总结
- 道——为天地万物之总源头
- 预测算法模型_如何测量预测模型或算法的准确性第1部分。
- python函数快查快用
- scratch小猫钓鱼 电子学会图形化编程scratch等级考试四级真题和答案解析2021-9
- Windows10 10大高级功能,个个功能强大,5倍提升工作效率