学习资源是中国大学MOOC 嵩天教授的Python语言程序设计

链接:https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/announce

链接:https://www.bilibili.com/video/av77405880?from=search&;;seid=13707628325074614556

#从一个数据到一组数据

数据维度是数据的组织形式

一组数据的的维度

一维数据

由对等关系的有序或无序数据构成,采用线性方式组织

-对应列表,数据和集合等概念

二维数据

由多个一维数据构成,是一维数据的组合形式

-表示是典型的二维数据

-其中,表头是二维数据的一部分,也可以是之外的一部分

数据的操作周期

存储 表示 操作

数据存储 (存储格式)

数据表示 (数据类型)

数据操作 (操作方式)

一维数据的表示

如果数据间有序:使用列表类型

ls = [3.1398,3.1349,3.141]

-列表类型可以表达一维有序数据

如果数据间

st = {}

-集合类型可以表达一维无序数据

一维数据的存储

存储方式一:空格分隔

中国 美国 日本 德国 法国 意大利

-使用一个或多个空格分隔进行存储,不换行

-缺点:数据中不能存在空格

存储方式二:逗号分隔

中国,美国,日本,德国

存储方式三:其他分隔

一位数据的操作

数据的读入处理

从空格分隔的文件中读入数据

中国 美国 日本 德国 法国 英国 意大利

txt = open(fname).read()

ls = txt.split()

f.close

>>>ls

['中国','美国','日本','德国','法国','英国','意大利']

一维数据的写入处理

采用空格分隔方式将数据写入文件

ls = ['中国','美国','日本','德国','法国','英国','意大利']

f = open(fname,'w')

f.write(''.join(ls))

f.close()

二维数据的格式化和处理

二维数据的表示

二维数据一般是表格形式,列表类型表达二维数据,列表里的每个元素也是列表

[[],[],[]]

-使用两层for循环遍历每个元素

-外层列表种每个元素可以对应一行,也可以对应一列

csv格式与二维数据存储

CSV:comma-separated values

-国际通用的一二维数据存储格式,一般.csv扩展名

-每行一个一维数据,采用逗号分隔,无空行

-Excel和一般编辑软件都可以读入或另存为csv文件

-如果某个元素缺失,逗号仍要保留

-二维数据的表头可以作为数据存储,也可以另行存储

-逗号采用英文半角符号,且无空格

-按行或者按列存都可以,具体由程序决定

-一般索引习惯:ls[row][column],先行后列

二维数据的读入处理

从csv格式的文件中读入数据

fo = open(fname)

ls = []

for line in fo:

line = line.replace('\n','')

fo.close()

将数据写入csv格式的文件

ls = [[],[],[]]

f = open(fname.'w')

for item in ls:

f.write(',',join(item) + '\n')

f.close()

如何逐一遍历处理

ls = [[],[]]

for row in ls:

for coloum in row:

高维数据

一般使用字典

#wordcloud

wordcloud库把词云当作一个WordCloud对象

-wordcloud.WordCloud()代表一个文本对应的词云

-可以根据文本中词语出现的频率等参数绘制词云

-绘制词云的形状、尺寸和颜色都可以设定

w = wordcloud.WordCloud()

-参数-描述

width指定词云对象生成图片的宽度,默认为400像素

height指定词云对象生成图片的高度,默认为200像素

min_font_size指定词云中字体的最小字号,默认4号

max_font_size指定词云中字体的最大字号,根据高度自动调整

font_step指定词云中字体字号的步进间隔,默认为1

font_path指定字体文件的路径,默认None

max_words指定词云显示的最大单词数量,默认200

stop_words指定词云的排除词列表,即不显示的单词列表(给定一个集合类型{})

mask指定词云形状,默认为长方形,需要引用imread()函数

>>>from scipy.misc import imread

>>>mk = imread('pic.png')

>>>w = wordcloud.WordCloud(mask = mk)

background_clolr指定词云图片的背景颜色,默认为黑色

import wordcloud

txt = 'life is short,you need python'

英文文本:

import wordcloud

w = wordcloud.WordCloud(background_color = 'white')

w.generate(txt)

w.to_file('pywordcloud.png')

中文文本:

import jieba

import wordcloud

txt = '程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理'

w = wordcloud.WordCloud(width = 1000,height = 700,font_path = 'msyh.ttc')

w.generate(''.join(jieba.lcut(txt)))

w.to_file('pywordcloud.png')

-以WordCloud对象为基础

-配置参数、加载文件、输出文本

方法描述

w.generate(txt)向WordCloud对象w中加载文本txt,

w.to_file(filename) 将词云输出作为图像文件,.png或.jpg格式

setup1:配置对象参数

setup2:加载词云文本

setup3:输出词云文件

import wordcloud

w = wordcloud.WordCloud()

c.generate('wordcloud by python')

c.to_file('pywordcloud.png')

1.分隔:以空格分隔单词

2.统计:单词出现次数并过滤

3.字体:根据统计配置自豪

4.布局:颜色环境尺

#程序设计方法学

体育竞技分析

IPO:

-需求:差距为几何?如何科学分析体育竞技比赛?

-输入:球员的水平

-输出:可预测的比赛成绩

模拟N场比赛

-计算思维:抽象+自动化

-模拟:抽象比赛过程+自动化执行N场比赛

-当N越大时,比赛结果分析会越科学

比赛规则:

-双人击球比赛:A & B ,回合制,5局3胜

-开始时一方先发球,直至判分,接下来胜者发球

-球员只能在发球局得分,15分胜一局

解决复杂问题的有效方式

-将一个总问题表达为若干个小问题组成的形式

-使用同样方法进一步分解小问题

-直至,小问题可以计算机确定明了的解决

自顶向下设计:

改善居住条件 -> 改善环境 -> 种树

盖楼   -> 设计等等

修马路

自底向上执行:

逐步组建复杂系统的有效测试方法

-分单元测试,逐步组装

-按照自顶向下相反的路径操作

-直至,系统各部分以组装的思路都经过测试和验证

python程序设计思维

-计算思维与程序设计

第三种人类思维特征

一 逻辑思维 推理和演绎 数学为代表

二 实证思维 实验和验证 物理为代表

三 计算思维 设计和构造 计算机为代表

抽象和自动化

-计算思维:Computational Thinking

-抽象问题的计算过程,利用计算机自动化求解

-计算思维是基于计算机的思维方式

-计算生态与python语言

开源运动

GNU  大教堂模式

linux 集市模式

计算生态

开源思想深入演化和发展,形成了计算生态

计算生态以开源项目为组织形式,充分利用‘公式原则’和‘社会利他’组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。

没有顶层设计、以功能为单位、具备三个特点

-竞争发展

-相互依存

-迅速更迭

python语言与计算生态

-以开源项目为代表的大量第三方库

-python语言提供 > 15万哥第三方库

-库的建设经过野蛮生长和自然选择

同一个功能,python语言2个以上第三方库相互竞争

-库之间相互关联使用,依存发展

python库之间分布广泛、逐级封装

-社区庞大,新技术更迭迅速

API != 生态(经过设计的顶层设计产品)

-创新:跟随创新、集成创新、原视创新

-加速科技类应用创新的重要支撑

-发展科技产品商业价值的重要模式

-国家科技体系安全和稳固的基础

计算生态的运用

刀耕火种 -> 站在巨人的肩膀上

-编程的起点不是算法而是系统

-编程如同搭积木,利用计算生态为主要模式

-变成的目标是快速解决问题

-用户体验与软件产品

用户体验

实现功能 -> 关注体验

-用户体验指用户对产品建立的主观感受和认识

-关心功能实现,更要关心用户体验,才能做出好产品

-编程不是手段,只是目的,编程最终为人类服务

提高用户体验的方法:

方法1:进展展示

-如果程序需要计算时间,可能产生等待,请增加进度展示

-如果程序有若干步骤,需要提示用户,请增加进度展示

-如果程序可能存在大量次数的循环,请增加进度展示

方法2:异常处理

-当获得用户输入,对合规性需要检查,需要异常处理

-当读写文件时,对结果进行判断,需要异常处理

-当进行输入输出时,对运算结果进行判断,需要异常处理

其它类方法

-打印输出:特定位置,输出程序运行的过程信息

-日志文件:对程序异常及用户使用进行定期记录

-帮助信息:给用户多种方式提供帮助信息

软件程序 -> 软件产品

用户体验是程序到产品的关键环节

-基本的程序设计模式

IPO

-I:input 输入,程序的输入

-p:process 处理,程序的主要逻辑

-o:output 输出,程序的输出

从IPO开始...

-确定IPO:明确计算部分及功能边界

-编写程序:将计算求解的设计变成现实

-程序调试:确保程序按照正确逻辑能够正确运行

自顶向下设计

自底向上执行

模块化设计

-通过函数或对象封装将程序划分为模块及模块间的表达

-具体包括:主程序、子程序和子程序间的关系

-分而治之:一种分而治之,分层抽象,体系化的设计思路

-紧耦合:两个部分之间交流很多,无法独立存在

-松耦合:两个部分之间交流较少,可以独立存在

配置化设计

-程序引擎 + 配置文件:程序执行和配置分离,将可选参数配置化

-将程序开发变成配置文件编写,扩展功能而不修改程序

-关键在于接口设计,清晰明了,灵活可拓展

从应用需求到软件产品

-1产品定义:对应用需求充分理解和明确定义 产品定义,而不仅是功能定义,要考虑商业模式

-2系统架构:以系统方式思考产品的技术实现 系统架构,关注数据流、魔魁啊话、体系架构

-3设计与实现:结合架构完成关键设计及系统实现 结合可拓展性、灵活性等进行设计优化

-4用户体验:从用户角度思考应用效果 用户至上,体验优先,以用户为中心

python第三方库安装

-看见更大的python世界

> https://pypi.org

-PyPI:Python Package Index

-PSF维护的展示全球Python计算生态的主站

-学会检索并利用PyPI,找到合适的第三方库开发程序

实例:开发与区块链相关的程序

-第一步:在pypi.org搜索blockchain

-第二步:挑选适合开发目标的第三方库作为基础

-第三步:完成自己需要的功能

方法1:pip命令

方法2:集成安装方法

方法3:文件安装方法

-第三方库的pip安装方法

D:\>pip install

-安装指定的第三方库

D:\>pip install -U

-使用-U标签更新已安装的指定第三方库

D:\>pip uninstall

-卸载指定的第三方库

D:\>pip download

-下载但不安装指定的第三方库

D:\>pip show

-列出某个指定第三方库的详细信息

D:\>pip search

-根据关键词在名称和介绍中搜索第三方库

D:\>pip list

-列出已经安装的第三方库

-第三方库的集成安装方法

Anacondahttps://www.continuum.io

-支持近800个第三方库

-包含多个主流工具

-适合数据计算领域开发

-第三方库的文件安装方法

-某些第三方库pip下载后,需要编译再安装

-如果操作系统没有编译环境,则能下载但不能安装

-可以直接下载编译后的版本安装吗?

UCI页面

http://www.lfd.uci.edu/~gohlke/pythonlibs

os库的基本使用

os库提供通用的、基本的操作系统交互功能

Windows、MacOS、Linux

-os库是python标准库,包含几百个函数

-常用路径操作、进程管理、环境参数等几类

-路径操作: os.path子库,处理文件路径及信息

以path为入口,用于操作和处理文件路径

import os.path

import os.path as op

函数描述

os.path.abspath(path)返回path再当前系统中的绝对路径

os.path.normpath(path)归一化path的表示形式,统一用\\分隔路径

os.path.relpath(path)返回当前程序与文件之间的相对路径(relative path)

os.path.dirname(path)返回path中的目录名称

os.path.basename(path)返回path中最后的文件名称

os.path.join(path,*paths)组合path与paths,返回一个路径字符串

os.path.exists(path)判断path对应文件或目录是否存在,返回True或False

os.path.isfile(path)判断path所对应是否为已存在的文件,返回True或False

os.path.isdir(path)判断path所对应是否为已存在目录,返回True或False

os.path.getatime(path)返回path对应文件或目录上一次的访问时间acess

os.path.getmtime(path)返回path所对应文件或目录最近一次的修改时间modify

os.path.getctime(path)返回path对应文件或目录的创建时间create

os.path.getsize(path)返回path对应文件的大小,以字节为单位

-进程管理: 启动系统中其他程序

os.system(command)

os.system('程序路径' '文件路径')

-环境参数: 获得系统软硬件信息等环境参数

os.chdir(path)修改当前程序操作的路径

os.getcwd()返回程序的当前路径

os.getlogin()获得当前系统登陆用户名称

os.cpu_count()获得当前系统的cpu数量

os.urandom(n)获得n个字节长度的随机字符串,通常用于加解密运算

第三方库自动安装脚本

-需求:批量安装第三方库需要人工干预。

python休假管理_Python 假期自学小结 其六相关推荐

  1. python内存管理_Python内存管理(一):预备知识

    一.内存的理解 你可以将计算机中的内存理解为一本为短期存储而设计的书.这本书中现在什么都没写,但最终不同的"作者"会来寻求空间,写入他们想写的故事. 由于他们之间不能彼此覆盖,他们 ...

  2. python包管理_Python包管理整理:setuptoo

    setuptool管理python相关的包 一.介绍 setuptool管理python相关的包的工具.这些包是zip格式发布,但是后缀一般都是.egg setuptool能解决python包的依赖关 ...

  3. python测试用例管理_Python测试框架Pytest的常用插件测试报告

    原标题:Python测试框架Pytest的常用插件测试报告 一.pytest-html 生成 html 测试报告 要求:Python 3.6+ 安装:pip install pytest-html 文 ...

  4. python布局管理_Python基础=== Tkinter Grid布局管理器详解

    本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html          @ 箬笠蓑衣 Grid(网格)布局管理器会将控件放置到一个二维的表 ...

  5. 写python脚本管理_Python 文件管理实例详解

    本文实例讲述了Python 文件管理的方法.分享给大家供大家参考,具体如下: 一.Python中的文件管理 文件管理是很多应用程序的基本功能和重要组成部分.Python可以使文件管理极其简单,特别是和 ...

  6. python信用卡管理_python信用卡操作

    import datetime user_dict = dict() # 用来存储用户的账号 # 注册系统: def registered(): try: print('welcome to regi ...

  7. Python包管理工具小结

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...

  8. python内存管理说法错误_python面试题总结1-内存管理机制

    1.python内存管理机制 (1).引用计数 (2). 垃圾回收 (3). 内存池机制 引用计数 在python中每创建一个对象,对应的会有一个引用计数,当发生赋值操作如a=b,对应的b的引用计数会 ...

  9. python 内存分析_python内存管理分析

    本文较为详细的分析了python内存管理机制.分享给大家供大家参考.具体分析如下: 内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Python的执行效率,因为在 ...

最新文章

  1. 第1关:学习-用循环和数组实现输入某年某月某日,判断这一天一年的第几天
  2. 编译后的boost库命名方式
  3. ASP开发10条经验总结(网上找的)
  4. linux安装anaconda3时出现error,the size of ** should be 6*** bytes
  5. 状态压缩dp入门 第一题 POJ 3254 Corn Fields
  6. HIT 2060 Fibonacci Problem Again
  7. django chart mysql,docker Django+mysql+ECharts+AngularJS简单搭建数据可视化
  8. php扩展zval,PHP扩展开发(7):zval结构
  9. 荔枝直播助手无法连接到服务器,荔枝FM直播助手pc客户端
  10. 某个蝰蛇音效的卡刷包代码分析
  11. 华硕(ASUS)X554LP笔记本重装win7后网卡和USB驱动问题的解决
  12. SDUT-3337 计算长方体、四棱锥的表面积和体积(JAVA*)
  13. 读季琦《创始人·手记》
  14. 学习强国-为中华崛起而学习
  15. 绝对值信号的编码器有哪些信号输出(三、四)
  16. python求excel平均数_#python抓取excel表格数据#使用python3读取处理excel表的数据内容如何对内容求平均值...
  17. springboot整合redis之用户手机验证码注册登录
  18. Ionic+Capacitor 创建混合APP
  19. 中国78比特量子计算机,迄今错误率最低量子比特面世 有望推进量子计算机研发...
  20. 计算机 实验室安全准入制度,实验室安全准入制度

热门文章

  1. 如何快速的下载百度网盘的文件
  2. 分页第一页用0还是1_计算机用0 和1刻画文字、图片和声音
  3. 数据库SQL实战(牛客网):获取员工其当前的薪水比其manager当前薪水还高的相关信息
  4. 关于游戏手柄按键的设计
  5. EasyCVR搭建视频安防综合运维管理平台,联合集成商打造专业视频解决方案
  6. DS18B20温度采集报警系统,原理及汇编、C语言实现
  7. 05_CSS 盒模型
  8. python异常-TypeError: ‘tuple‘ object is not callable.当不同的环境下同一个语句运行结果不同时,不如重启程序、更改不相关变量试试
  9. yelp实现mysql写Kafka_实时将Cassandra数据引流到Kafka(下)
  10. 手机百度浏览器ua标识在哪里_浏览器标识(ua)的那些事