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)]

  1. 先复制X
    [x for x in X]
  2. 再对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)——基本操作相关推荐

  1. Python学习之并发基础知识

    8 并发编程 8.1 基础知识 8.1.1 操作系统的定义 操作系统是存在于硬件与软件之间,管理.协调.调度软件与硬件的交互. 资源管理解决物理资源数量不足和合理分配资源这两个问题, 通俗来说,操作系 ...

  2. Python学习6 字典基础知识和常用函数

    字典概念 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据.为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 ...

  3. python学习记录(基础知识+案例实现)

    day01 1.变量 """ 变量在内存中创建一个空间,专门存储数据name = zhangsan命名规范不能以数字.特殊字符开头,不能以关键字命名英文单词.数字.下划线 ...

  4. Python学习5 元组基础知识和常用函数

    元组概念 元组:a=(1,23) 列表:a= [1,23] 创建和访问元组 Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串. 元组与列表类似,也用整数来对 ...

  5. Python学习4 列表基础知识和常用函数

    列表 1.格式 2.增删改查 列表下标: 0–n-1 -n-(-1) #对列表进行切片 #0-(n-1) #-n-(-1) list=['dq','python','mm'] print(list[0 ...

  6. Python学习之路-基础知识1

    永远的Hello World! print("Hello World!") >>Hello World! 数据类型 Number类型: 数值类型,用于存储数字 Inte ...

  7. Python学习笔记(基础知识第三篇:列表、元组、字典、集合)

    一.列表 1.列表知识 定义一个空的列表,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). 打印出第一个元素,列表索引值以0为开始值,-1为从末尾的开始位置. 列表可以使用 ...

  8. Python学习之路-基础知识2-文件操作

    文件操作     现有文件test.txt内容如下: 床前明月光, 疑是地上霜. 举头望明月, 低头思故乡. >>>f = open("test.txt",&qu ...

  9. python学习课程 0基础学Python视频教程

    python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...

  10. 学python需要什么基础知识-没学过Python先要学习哪些基础知识?

    零基础学Python应该学习哪些入门知识 关于零基础怎么样能快速学好Python的问题,百度提问和解答的都很多,你可以百度下看看.我觉得从个人自学的角度出发,应从以下几个方面来理解: 1 为什么选择学 ...

最新文章

  1. 必看!程序员逃生指南
  2. Quartz.Net—MisFire
  3. Spring-Security-入门(一):登录与退出
  4. ActiveMQ组件使用方法
  5. springmvc+mybatis+mysql+maven
  6. python阻塞和非阻塞_Python基础必备知识:同步异步阻塞非阻塞
  7. ora-01740: 标识符中缺失双引号_sql语句中单引号的使用
  8. 成为Java流大师–第4部分:数据库流
  9. 电脑无法启动故障的10种解决方法
  10. mysql数据库初识实训总结_MySQL(数据库)的初识
  11. ubuntu 下 lighttpd 支持 mod_cgi 的配置文件
  12. Mac无法开机?如何修复
  13. php 正则断言里面使用*+
  14. 2021年新版阿里云服务器价格表(收费标准报价)
  15. 蓦然回首,灯火阑珊——自考总结
  16. 道——为天地万物之总源头
  17. 预测算法模型_如何测量预测模型或算法的准确性第1部分。
  18. python函数快查快用
  19. scratch小猫钓鱼 电子学会图形化编程scratch等级考试四级真题和答案解析2021-9
  20. Windows10 10大高级功能,个个功能强大,5倍提升工作效率

热门文章

  1. 软件需求包括3个不同的层次――业务需求、用户需求和功能需求
  2. 用java完成身高预测
  3. 在新的固态硬盘中安装windows系统(旧固态硬盘已安装ubuntu系统)
  4. Linux 终端浏览器 w3m
  5. 记录一次在线网页加密PDF解密过程
  6. 详解 n 维向量、n 维数组 和 矩阵的维度(转载)
  7. 创业失败的18个原因
  8. 如何解决浏览器音视频video/audio设置自动播放autoplay无效问题?
  9. waterfall model
  10. git删除远程创库命令