程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

python语言程序设计_北理MOOC视频笔记

发布于2020-03-26 12:24     阅读(3225)     评论(0)     点赞(5)     收藏(4)


本文仅为学习记录,笔记来源于北京理工大学MOOC

(一)python快速入门

Week1 _基本语法元素

1.1 程序设计基本方法

  • 源代码&目标代码

  • 编译&解释→编译器compiler&解释器interpreter
    在这里插入图片描述

  • 静态语言&脚本语言
    编译执行/解释执行

  • 程序基本编写方法
    IPO:输入、输出、处理
    解决问题步骤:

    1. 分析问题的计算部分
    2. 划分问题的功能边界
    3. 设计问题的求解算法
    4. 编写问题的计算程序
    5. 调试程序使正确运行
    6. 适应问题的升级维护

1.2 python开发环境配置

两种编程方式:交互式&文件式

1.3 实例1 温度转换

1.4 语法元素

  • 基本语法

  • 数据类型
    Numbers(数字)

    1. int(有符号整型)
    2. long(长整型[也可以代表八进制和十六进制])
    3. float(浮点型)
    4. complex(复数)

    String(字符串)
    List(列表)
    Tuple(元组)
    Dictionary(字典)

  • 语句与函数


Week2_画图

2.2 实例2 蟒蛇绘制

2.3 turtle库概述

turtle库的安装

  • 计算生态=标准库+第三方库
  • 库library,包package,模块module

  • turtle库
    turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
    参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心
    turtle.goto(x,y) 绝对坐标
    turtle.circle(r,angle) / turtle.backward(d) / turtle.forward(d) 角度坐标
    turtle.seth(angle) 绝对-角度坐标
    turtle.right(degree) / turtle.left(degree) 相对-角度坐标

2.4 turtle程序语法元素分析

库引用的方法:

  • import <库名>
  • from <库名> import* / from <库名> import <函数名> 简洁,但可能出现函数重名问题
  • import <库名> as <别名>

理解他人代码方法:

  1. 了解参考框架结构
  2. 逐行分析
  3. 逐词理解

(二)python基础语法

Week3_基本数据类型

3.1 数字类型及操作

数字类型:

  • 整数
    十进制,二进制0b/0B,八进制0o/0O,十六进制0x/0X
  • 浮点数
    不确定尾数。round(x[,d])对x四舍五入到小数点后d位
  • 复数
    z.real获得实部,z.imag获得虚部

运算符

  • + - * / // % **
  • op =op指上述的二元操作符

数值运算函数

  • abs()
  • divmood(x,y)(商,余)
  • pow(x,y[,z]) x**y%z

3.2 实例3 天天向上的力量

3.3 字符串类型及操作

字符串类型及操作
字符串操作符:

  • x+y
  • n*x /x*n
  • x in s 成员运算符,如果在指定的序列中找到值返回 True,否则返回 False

字符串处理方法:
掌握——python的字符串(String)及其常见操作(方法、函数)

  • 下标与切片
    str[下标],从左向右0→+,从右向左-1→
    str[起始:结束:步长],范围包首不包尾
  • 查找、分割、大小写格式化、对齐格式化、清除空白字符、检查
  • str.upper() / str.lower 转换 string 中所有小写字符为大写/相反
  • str.split(sep=None)以 str 为分隔符切片 string
  • str.count(sub[,beg,end])返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
  • str.replace(old,new)把 string 中的 str1 替换成 str2
  • str.center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
  • str.strip(chars) 在 string 上执行 lstrip()和 rstrip(),即删除 string 字符串开头和末尾的空格
  • str.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

字符串处理函数:

  • len(x)
  • str(x)
  • hen(x) oct(x)
  • chr(u) & ord(x)

字符串类型的表示

  • 一对单双引号/一对三引号:根据情况选择外侧用什么表示
  • 访问字符串中的值:索引&切片表示
  • 转义字符
  • 字符串格式化:利用字符串格式符 %s或者字符串的函数 str.format()
    format():
    {:|<填充><对齐><宽度>|<,><.精度><类型>}
    填充——用于填充的单个字符
    对齐——<左对齐 >右对齐 ^居中对齐
    ,——数字的千位分隔符
    类型——

%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中

3.4 time库

time库的使用
time库:

  • 时间获取

    1. .time() 返回计算机内部时间值,浮点数
    2. .ctime() 返回字符串
    3. .gtime() 返回计算机可处理的时间格式
  • 时间格式化

  1. strftime(tpl,ts)tpl是格式化模板字符串,用来定义输出结果;ts是计算机内部时间变量类型
t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t);
 
#运行结果
#'2019-09-19 01:25:01'
  1. strptime(str, tpl) str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果
timeStr = '2019-09-19 09:30:45'
time.strptime(timeStr, "%Y-%m-%d %H:%M:%S");
 
#运行结果
#time.struct_time(tm_year=2019, tm_mon=9, tm_mday=19, tm_hour=9, tm_min=30, tm_sec=45, tm_wday=3, tm_yday=262, tm_isdst=-1)
  • 程序计时
  1. 测量时间:perf_counter()返回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义
  2. 产生时间:sleep()拟休眠的时间,单位是秒,可以是浮点数

3.5 实例4 文本进度条


Week4_程序的控制结构

4.1 程序的分支结构

  • 单分支结构
    根据判断条件而选择不同向前路径的运行方式
    “如果-则” if<>
  • 二分支结构
    根据判断条件结果而选择不同向前路径的运行方式
    “如果-否则” if<> else<>
    紧凑型式
    print("猜{}了".format("对"if guess==99 else "错")
  • 多分支结构
    if<> elif<> else<>
  • 条件判断与组合
    条件判断 >;<;==;!=等
    条件组合 and;or;no
  • 程序的异常处理
try<语句块>
except <异常类型>:
    <语句块>
#异常类型的名字是预定义了
#---------------------
try:
except:
else:
finally

4.2 实例5 身体质量指数

4.3 程序循环结构

  • 遍历循环for<循环变量> in <遍历结构>
    字符串、列表、文件、元组、字典也可以遍历
  • 无限循环while
  • 循环控制保留字break continue
  • 循环的高级用法
    循环与else

4.4 random库

  • 伪随机数
  • 基本随机函数
    seed() 初始化给定的随机数种子,默认为当前系统时间
    #用种子可以使得之后复现时产生的随机数相同
    random() 生成一个[0.0, 1.0)之间的随机小数
    在这里插入图片描述

4.5 实例6 圆周率的计算


Week5_函数和代码复用

5.1 函数的定义和使用

  • 函数的理解和定义
    输入(参数)、处理(函数体)和输出(IPO)
  • 函数的使用和调用
  • 函数的参数传递
    可选参数(,)&可变参数(,*)传递
  • 函数的返回值
  • 局部变量和全局变量
    ——
    lambda函数,一种匿名函数,一般用于定义一些特殊的参数。

5.2 实例7 七段数码管绘制

5.3 代码复用和函数递归

  • 代码复用
  • 模块化设计
  • 函数递归
    递归:函数定义中调用函数自身的方式。
    链条:计算过程中存在递归链条。
    基例:存在一个或多个不需要再次递归的基例。
    【例】求n的阶乘

5.4 PyInstaller库

Python利用 pyinstaller 打包简明教程

5.5 实例8 科赫雪花小包裹


Week6_组合数据类型

6.1 集合类型及操作

笔记:集合类型和操作

  • 集合类型定义
  • 集合操作符
  • 集合处理方法
  • 集合类型应用场景

6.2 序列类型及操作

笔记:序列类型及操作

  • 序列类型定义
    包括字符串、列表、元组类型
  • 序列处理函数及方法
    s.index(x,i,j) 返回序列s从i开始到j位置中第一次出现元素x的位置
  • 元组类型及操作
    1. 元组是一种序列类型,一旦创建就不能被修改;
    2. 使用小括号()或tuple()创建,元素间用逗号 , 分割;
    3. 可以使用或不使用小括号;def func(): return 1,2;
  • 列表类型及操作
    1. 列表是一种序列类型,创建后可以随意被修改;
    2. 使用方括号[]或list()创建,元素间用逗号,分割;
    3. 列表中各元素类型可以不同,无长度限制
      在这里插入图片描述

6.3 实例9 基本统计值计算

6.4 字典类型及操作

  • 字典类型及定义

字典类型是“映射”的体现

  1. 键值对:键是数据索引的扩展key:value
  2. 字典是键值对的集合,键值对之间无序;
  3. 采用大括号{}和dict()创建,键值对用冒号:表示;

python中要求字典中的键是不可变的,如字符串、数字或元组;而值则可以取任何数据类型
→数据类型的嵌套问题<笔记>

#<字典变量> = {<键1>:<值1>, ..., <键n>:<值n>}
#<值> = <字典变量>[<键>];
>>> d = {"中国":"北京","美国":"华盛顿","法国":"巴黎"};
>>> d["中国"];
'北京'
  • 字典处理函数和方法
    在这里插入图片描述
>>> d = {"中国":"北京","美国":"华盛顿","法国":"巴黎"};
>>> "中国" in d
True
>>> d.keys()
dict_keys(['中国', '美国', '法国'])
>>> d.values();
dict_values(['北京', '华盛顿', '巴黎'])
>>> d.get("中国","伊斯兰堡");
'北京'
>>> d.get("巴基斯坦","伊斯兰堡");
'伊斯兰堡'
>>> d.popitem()
('法国', '巴黎')
>>> d.items();
dict_items([('中国', '北京'), ('美国', '华盛顿'), ('法国', '巴黎')])
>>> list(d.items());#将元祖转换为列表
[('中国', '北京'), ('美国', '华盛顿'), ('法国', '巴黎')]
  • 字典类型应用场景
    元素遍历 for k in d

6.5 jieba库

  • jieba是优秀的中文分词第三方库,需要额外安装,安装的语句是:pip install jieba

  • 中文文本需要通过分词获得单个的词语

  • jieba库提供三种分词模式,分别是精确模式,全模式,搜索引擎模式
    在这里插入图片描述采用.add_word()增加新词

6.6 实例10 文本词频统计


Week7_文件和数据类型的格式化

7.1 文件的使用

  • 文件的类型

文件是数据的抽象和集合;
文件是存储在辅助存储器上的数据序列;
文件是数据存储的一种形式;
文件的展现形态——文本文件和二进制文件:本质上,所有文件都是二进制形式存储;形式上,所有文件采用两种方式展示;

  • 文件的打开和关闭
    打开 open(<打开路径>,<打开模式>)
    在这里插入图片描述
    操作
    1. 读取
      在这里插入图片描述
    2. 写入
      在这里插入图片描述
      关闭 close()
  • 文件内容的读取
  • 数据的文件写入

7.2 实例11 自动轨迹绘制

7.3 一维数据的格式化和处理

  • 一维数据:
    对应列表、数组和集合等概念
  • 二维数据:
    由多个一维数据构成,是一维数据的组合形式
  • 多维数据:
    由一维或二维数据在新维度上扩展形成
  • 高维数据
  • 理解数据的操作周期:存储、表示、操作
    在这里插入图片描述
  • 一维数据的表示:列表 or 集合
  • 一维数据的存储: 用空格分隔、用逗号分割、其他特殊符号
  • 一维数据的处理(前两者)
    7.1处有介绍打开和写入操作
  1. 读入
#文件内容fname.txt:中国 美国 日本 德国 法国 英国 意大利
txt = open(fname).read()
ls = txt.split(',')
f.close()
  1. 写入
    ls = ['中国', '美国', '日本']
    f = open(fname, 'w')#打开文件,执行写操作
    f.write(' '.join(ls))
    f.close()

7.4 二维数据的格式化和处理

  • 二维数据的表示:
    一般使用列表类型-二维列表,如:[[1,3,4],[2,6,5],[1,13,2]]
    两层遍历
  • CSV数据存储格式
    CSV(Comma-Separated Values)用逗号分隔无空格

csv约定:
如果某个元素缺失,逗号仍要保留
二维数据的表头可以作为数据存储,也可以另行存储
逗号为英文半角逗号,逗号与数据之间无额外空格

  • 二维数据的存储
    一般的索引习惯是ls[row][column]先行后列,按行存
  • 二维数据的处理
  1. 二维数据的读入处理
    #实例11就有用过啦
 #从csv文件中读取数据
    ls = [];
    fo = open(fname)
    for line in fo:
        line = line.replace("\n","");
        ls.append(line.split(","));
    fo.close();
  1. 二维数据的写入处理
#将数据写入csv格式的文件
ls = [[], [], []];#二维列表
f = open(fname, 'w');
for item in ls:
    f.write(','.join(item) + "\n");
f.close();
  1. 二维数据的逐一处理
    #两层遍历
#采用二层循环
ls = [[1, 2], [3, 4], [5, 6]];
for row in ls:
    for column in row:
        print(column);

7.5 wordcloud库

wordcloud是优秀的词云展示第三方库,可以根据文本中词语出现的频率等参数绘制词云,且词云的绘制形状、尺寸和颜色都可以设定
wordcloud.WordCloud()

import wordcloud
w=wordcloud.WordCloud()
w.generate(txt) 	#向WrodCloud对象w中加载文本txt
w.to_file(filename) 	#将词云输出为图像文件,.png或.jpg格式

配置对象参数
在这里插入图片描述

7.6 实例12 政府工作报告

(三)python编程思维

Week8_程序设计方法学

Week9_python计算生态纵览

原文链接:https://blog.csdn.net/weixin_43531163/article/details/105017698



所属网站分类: 技术文章 > 博客

作者:8778787

链接:https://www.pythonheidong.com/blog/article/285135/c7b05163ba50e6e4d6c0/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)