【计算机二级Python】阶段性总结版
二级备赛系列博文
- 【计算机二级Python】客观题(总结版)
- 【计算机二级Python】主观题(总结版)
- 【计算机二级Python】易忘知识点总结
- 【计算机二级Python】阶段性总结版
ch7、文件
文件类型分类
- 文本文件,单一特定编码,例如UTF-8编码
- 二进制文件,按照非字符但特定格式形成的文件,例如
png
图片文件和avi
视频文件 - 二进制文件和文本文件的最主要区别是否有统一的字符编码。
文件打开方式
t
表示文本文件方式打开,文件经过编码形式字符串,打印出有含义的字符b
表示二进制文件方式打开,文件被解析为字节流
文件的读操作
read
和readlines
都是一次性读入文件的函数f.read()
是最常用的一次性读入文件的函数,其结果是一个字符串f.readlines()
也是一次性读入文件的函数,其结果是一个列表,每个元素是文件的一行。- 对文件的读写有一个读取指针,当从文件中读入内容后,读取指针将向前进,再次读取的内容将从指针的新位置开始。若想再从头开始需要用
f.seek
函数重置指针位置 - 文本文件可以看成是由行组成的组合类型,因此,可以使用遍历循环逐行遍历文件。
文件的写操作
f.write
向文件写入一个字符串,f.write(s)时,要显式的使用’\n’对写入文本进分行,如果不进行分行,每次写入的字符串会被连接起来f.writelines
将一个元素为字符串的列表写入文件,直接将列表类型的各元素连
接起来写入文件f
数据组织的维度
- 一维数据采用线性方式组织,采用列表形式表示
- 存储采用CSV格式(逗号分隔,形成一行)
- 二维数据采用二维表格方式组织
- 高位数据采用对象方式组织
字符串常用方法
str.join(iter)
是将iter变量的每一个元素后增加一个str字符串。str.split(sep)
能够根据sep
分隔字符串str
,分割后的内容以列表类型返回。
def parseCSV(filename):dataNames, data = [], []f = open(filename, "r", encoding = 'utf-8')for line in f:splitedLine = line.strip().split(',')if '指标' in splitedLine[0]:years = list(int(x[:-1]) for x in splitedLine[1:])else:dataNames.append("{:10}".format(splitedLine[0]))data.append([float(x) for x in splitedLine[1:]])#最外层少加一个[]f.close()return years, dataNames, data def means(data):return sum(data) / len(data)def linearRegression(xlist, ylist):xmeans, ymeans = means(xlist), means(ylist)bNumerator = - len(xlist) * xmeans * ymeansbDenominator = -len(xlist) * xmeans ** 2for x, y in zip(xlist, ylist):bNumerator += x * ybDenominator += x ** 2b = bNumerator / bDenominatora = ymeans - b * xmeansreturn a, bdef calNewData(newyears, a, b):return [(a+b*x) for x in newyears]def showResults(years, dataNames, newDatas):print("{:^60}".format("国家财政收支线性估计"))header = '指标 'for year in years:header += "{:10}".format(year)print(header)for name, lineData in zip(dataNames, newDatas):line = name #这里为什么要重新再赋值呢?for data in lineData:line += "{:>10.1f}".format(data)print(line)def main():newyears = [x+2010 for x in range(7)]newDatas = [] #错写成了newdatasyears, dataNames, datas = parseCSV("finance.csv")for data in datas:a, b = linearRegression(years, data)newDatas.append(calNewData(newyears, a, b))showResults(newyears, dataNames, newDatas)main()
ch8 程序设计
from random import *def printIntro():print("这个程序模拟两个选手A和B的某种竞技比赛")print("程序运行需要A和B的能力值(以0~1之间的小数表示)")def getInputs():a = eval(input("请输入选手A的能力值(0~1): "))b = eval(input("请输入选手B的能力值(0~1): "))n = eval(input("模拟比赛的场次: "))return a, b, ndef gameOver(a, b):return a==15 or b==15def simOneGame(proA, proB):scoreA, scoreB = 0, 0serving = "A"while not gameOver(scoreA, scoreB):if serving == "A":if(random() < proA):scoreA += 1else:serving = "B"else:if(random() < proB):scoreB += 1else:serving = "A"return scoreA, scoreBdef simNGames(n, proA, proB):winsA, winsB = 0, 0for i in range(n):scoreA, scoreB = simOneGame(proA, proB)if (scoreA > scoreB):#冒号别忘了winsA += 1else:winsB += 1return winsA, winsBdef printSummary(winsA, winsB):n = winsA + winsBprint("竞技分析开始,共模拟{}场比赛".format(n))print("选手A获胜{}场比赛,占比{:.1%}".format(winsA, winsA/n))print("选手B获胜{}场比赛,占比{:.1%}".format(winsB, winsB/n))def main():printIntro()proA, proB, n = getInputs()winsA, winsB = simNGames(n, proA, proB)printSummary(winsA, winsB)
main()
提取WEB上的链接
def getHTMLlines(htmlpath):f = open(htmlpath, "r", encoding='utf-8')ls = f.readlines()f.close()return lsdef extractImageUrls(htmllist):urls = []for line in htmllist:if 'img' in line:url = line.split('src=')[-1].split('"')[1]if 'http' in url:urls.append(url)return urls
def showResults(urls):count = 0for url in urls:print('第{:2}和URL:{}'.format(count, url))count += 1def saveResults(filepath, urls):f = open(filepath, "w")for url in urls:f.write(url+"\n")f.close()def main():inputfile = 'nationalgeographic.html'outputfile = 'nationalgeographic-urls.txt'htmlLines = getHTMLlines(inputfile)imageUrls = extractImageUrls(htmlLines)showResults(imageUrls)saveResults(outputfile, imageUrls)main()
【计算机二级Python】阶段性总结版相关推荐
- 【计算机二级Python】主观题(总结版)
二级备赛系列博文 [计算机二级Python]客观题(总结版) [计算机二级Python]主观题(总结版) [计算机二级Python]易忘知识点总结 [计算机二级Python]阶段性总结版 一.小知识什 ...
- python考证书-计算机二级 Python 怎么考?考什么?
2020.09.26更新:今天的二级python最后一个大题考试内容(部分),没考试的同学大家还可以最后挣扎一下. /> ==================================== ...
- python计算机二级含金量-计算机二级 Python 怎么考?考什么?
2020.09.26更新:今天的二级python最后一个大题考试内容(部分),没考试的同学大家还可以最后挣扎一下. /> ==================================== ...
- 【计算机二级Python】考试攻略及资料汇总
目录 1 考试大纲 2 学习教材推荐 3 学习网站推荐 3.1 编程零基础网课 3.2 有编程基础网课 4 模拟和真题试卷资料 5 相关链接 1 考试大纲 2018版python考试题纲PDF 2 学 ...
- 计算机二级python考试题型和分值
计算机二级python 一. 题型及分值分布1. 单选题共40道,1到10题为公共基础知识,11到40题是python相关的知识,比如数据结构与算法.python基础知识. 每道题1分,共4 ...
- 计算机二级python基础知识总结-计算机二级python 知识点篇(程序的控制结构)...
计算机二级python 知识点篇(程序的控制结构) 程序的基本结构 程序由三种基本结构组成: 顺序结构. 分支结构和循环结构 分支结构 单分支结构 if and 表示多个条件"与" ...
- 计算机二级python用什么书-如何准备全国计算机二级Python?
如果你也和我一样是零基础学习,希望你过! 以下是我的回答提纲 /> 一.参考过的知乎回答这是我找到的最全面的备考攻略,第一推荐!!考完发现他还有更新!!曹操:计算机二级 Python 怎么考?考 ...
- 计算机二级python用什么书-计算机二级python考什么?
计算机二级python考的内容有:1.Python语言基本语法元素:2.基本数据类型:3.程序的控制结构:4.函数和代码复用:5.组合数据类型:6.文件和数据格式化:7.Python计算生态等等. 计 ...
- 未来教育python视频百度云-2019年计算机二级Python语言程序设计考试大纲
2019年计算机二级Python语言程序设计考试大纲 浏览次数: 时间:2019/03/14 从各省教育考试院公布的2019年计算机等级考试报名通知中可知2019年计算机等级考试所有大纲均为2018年 ...
最新文章
- java.lang.ClasNotFoundException:Didnt findclass on path:DexPathList[[zip file
- Sublime Text 3 python 配置
- python小游戏代码大全-Python小游戏之300行代码实现俄罗斯方块
- ASP.NET的MVC中使用Cookie做身份验证(附代码下载)
- js内存泄露 垃圾回收_Java内存体系结构(模型),垃圾回收和内存泄漏
- mysql 利用触发器(Trigger)让代码更简单
- 在Kubernetes上部署和管理PostgreSQL
- python 字符编码、格式化
- 30款油漆纹理Photoshop笔刷
- mschart走势图 vc_[VC] 解决MSChart闪烁的问题
- 从源码入手,一文带你读懂Spring AOP面向切面编程
- python源码提取_从PyInstaller打包生成的EXE文件中提取Python源码
- 《浪潮之巅》读书笔记
- CSDN 博客专家申请入口
- 软件测试行业到底有没有前景和出路?(最全面)
- 【MIPS汇编编程练习Lab5】汇编中的条件语句 大于小于比较 if-else statement slt
- PAT 1044 火星数字
- 有一个已经排好序的数组,今输入一个数,要求按照原来排序的规律将它插入数组中
- 关键词挖掘的方法和技巧
- 用java在画布中绘制六个随机英文字母