【计算机二级Python】主观题(总结版)
二级备赛系列博文
- 【计算机二级Python】客观题(总结版)
- 【计算机二级Python】主观题(总结版)
- 【计算机二级Python】易忘知识点总结
- 【计算机二级Python】阶段性总结版
一、小知识什锦
- format相关的知识点
- format的小细节:前面的格式控制符中一定要加引号!
- 注意format是先填充、对齐然后宽度,顺序不能乱的!
- format带千分位分隔的效果,
n = input() print("{:->20,}".format(eval(n)))
a = "python"
b = "="
c = ">"
print("{0:{1}{3}{2}}".format(a, b, 25, c)) #就相当于print("{0:=>25}".format(a))
- 列表
[]
ls = [3.5, "Python", [10, "LIST"], 3.6]
然后print(ls[2][ –1][1])
的运行结果是L
想成三维数组的索引
字典
{}
- 对字典中元素统计的语句:
d[word] = d.get(word, 0) + 1
- d.items()返回字典中的所有键值对信息,返回结果是Python的一种内部数据类型dict_items。
- 对字典中元素统计的语句:
字符串
str.replace(old, new)
返回字符串str的副本,所有old子串被替换为new- str.strip(chars)从字符串str中去掉在其左侧和右侧chars中列出的字符。chars是一个字符串,其中出现的每个字符都会被去掉。
turtle相关
- turtle库的fd函数绘制直线,seth函数用来设置对应于角度坐标系的绝对值方向(正值为逆时针);left函数用来在当前行进方向上向左转向。
- 注意turtle开始就是自西向东的,向左还是向右是根据海龟目前的朝向而言的
turtle.circle (radius, extent=None)
根据radius绘制extent角度的弧形
random相关
- randint是生成一个[a,b]之间的整数,注意区间都是闭的。
time相关
time.strftime('%Y-%m-%d %H:%M:%S', startTime)
和time.strptime(timeString, "%Y-%m-%d %H:%M:%S")
是一个刚好相反的过程,记住strftime是生成一个标准的格式即可
pyinstaller相关
- 使用-i参数增加对打包文件图标的引入,使用-F参数用来生成单一的打包后可执行文件程序
pyinstaller -i a.ico -F a.py
jieba相关
- jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库的内容进行对比,通过图结构和动态规划算法找到最大概率的词组
其他
print( 0.1 + 0.2 == 0.3)
的输出是False,原因是浮点数间的计算存在不确定尾数,不是bug。因为print(0.1 + 0.2)
输出0.30000000000000004
…
二、通用代码
- 统计字符串中的某字符个数
m = s.count(',') + s.count('?') #其中的标点符号个数
n = len(s) - m #其中的汉字个数
- 统计N~N+100的所有奇数和
N = input("请输入一个整数: ")sum = 0
for i in range(eval(N), eval(N)+100): #注意是eval(N)+100if (i % 2) != 0:sum += i
print(sum)
- 统计列表中元素出现次数
ls = [...]
for word in ls:d[word] = d.get(word, 0) + 1
for j in d:print("{}:{}".format(j, d[j]))
- 输入整数
def getInput():try:txt = input("")if eval(txt) != int(txt):print("")except:return getInput()return eval(txt)
print(getInput())
- 输入字符串,宽度15,居中,不足15填充=,超过15只要前15个
- [分析] 主要考察format的,①、关于=^前后位置,必须是是先填充然后居中②、当大于指定宽度的时候,format是全部输出的,所以我们手动截取前15个元素
s = input()
print("{:=^15}".format(s[0:15]))
- 绘制三角形
- [亮点]使用*,而不是+
import turtle as t
for i in range(3):t.seth(i*120) t.fd(200)
- 四片花瓣的绘制
import turtle as t
for i in range(4):t.seth(90 * (i + 1))#90,180,270,360t.circle(200,90)#-90,0,90,180t.seth(-90 + i * 90)t.circle(200,90)
- 字典一个应用
- 【亮点】注意添加、删除和添加的方法
d = {'数学':101, '语文':202, '英语':'203', '物理':204, '生物':206}
d['化学'] = 205
d['数学'] = 201
del d['生物']
for key in d:print("{}:{}".format(d[key], key))
- 累加键盘输入且用逗号分隔的若干数字
- 字符串split方法的使用,最后产生的是一个列表
- eval将字符串变成表达式
n = input("")
nums = n.split(",")
s = 0
for i in nums:s += eval(i)
print(s)
- 求最大公约数
- 首先调置a和b的顺序,使得a > b,r的初值置为1
- 当r!=0是就辗转相除
- r = a % b
- a = b
- b = r;
def GreatCommonDivisor(a,b):if a > b:a,b = b,ar = 1while r != 0:r = a % ba = bb = rreturn a
m = eval(input())
n = eval(input())
print(GreatCommonDivisor(m, n))
- 去除一个列表中的全部素数
- 所谓素数是除1和它本身,无其他公因子的数…
def is_prime(n):for i in range(2, n):if n % i == 0:return Falsereturn True#此处可为多行函数定义代码
ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]
for i in ls.copy():if is_prime(i)== True:ls.remove(i) #此处为一行代码
print(len(ls))
易错的…
1、
x=10
y=3
print(divmod(x,y))
输出
(3,1) #注意是带括号的
2、
a = 10.99
print(complex(a))
输出
(10.99+0j) #注意:是带括号的
3、
s = "Alice"
print(s[::–1])
输出
ecilA
4、
注意: Python中字符串切片方法 字符串[开始索引:结束索引:步长]
5、
for i in range(6):print(chr(ord(9801)+i),end="")
系统输出会报错
6、
for i in range(12):print(chr(ord("♈")+i),end="")
输出:
♈♉♊♋♌♍♎♏♐♑♒♓
7、
s1 = "The python language is a scripting language."
s1.replace('scripting','general')
print(s1)
输出是
The python language is a scripting language.
8、
但是这个程序:
s1 = "The python language is a scripting language."
s2 = s1.replace('scripting','general')
print(s2)
输出是:
The python language is a general language.
9、
s = "The python language is a cross platform language."
print(s.find('language',30))
改程序的功能是输出language
的出现的最小序号,从下标为30开始找,所以输出是:
40
10、
chr(13).isprintable() #输出False,13对应的ascii是转义字符,转义字符不可打印
11、
isinstance(255,int)
#Python 中的isinstance函数,isinstance是Python中的一个内建函数。是用来判断一个对象的变量类型。
#所以255是整型,输出True
12、
a = "alex"
b = a.capitalize()
print(a,end=",")
print(b)
#Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境。
#所以输出alex,Alex
13、
14、
15、
16、
注意小数是无穷。
17、
18、
19、
20、
21、
22、
具体是什么啥类型是根据输入参数决定的。
23、
基本类型的局部变量是不能被改变全局变量的
24、
注意C选项输出是列表,列表输出需要加 [ ]
参数调用的几种类型:
按位置参数调用
按可变参数调用
参数按照名称传递
25、
for循环另一种新奇用法:
for 循环还可以这样用
l = [x for x in range(0, 10)]
26、
注意最后必须进行一次list转换!
27、
28、
29、
列表倒序输出的一个小技巧 [::-1]
这个除了要注意倒序输出,还要注意输入元组,输出也是元组(使用小括号)
30、不能生成空字典的是:
31、
32、
33、
34、
35、
36、
字典中的键不能重复
37、
zip也不失为一种创建字典的好方法
38、
当文件以文本文件方式打开时,读写按照字符串方式
当文件以二进制文件方式打开时,读写按照字节流方式
39
40、
41、
是有默认值的
42、
43、
44、
45、
join之后的列表就变成了一个字符串
46、
47、
48、
列表可以是1/2/多维,字典是高维的
49、
50、
51、
三、实例
实例1、《论语文本处理》
fi = open("论语-网络版.txt", "r", encoding = "utf-8")#注意encoding是不在引号里面的
fo = open("论文-clay.txt",'w')
wflag = False
for line in fi:if "【" in line:wflag = Falseif "【原文】" in line:wflag = Truecontinueif wflag == True:for i in range(0,25):for j in range(0, 25):line = line.replace("{}·{}".format(i, j), "**")for i in range(0,10):line = line.replace("*{}".format(i), "");for j in range(0,10):line = line.replace("{}*".format(j), "")#注意是format(j)line = line.replace("*", "")fo.write(line)
fi.close()
fo.close()fi = open("论文-clay.txt", "r")
fo = open("论文-clay-去注释.txt", "w")
for line in fi:for i in range(1, 23):line = line.replace("({})".format(i), "")fo.write(line)
fi.close()
fo.close()
实例2、天龙八部中的统计
- 对其中的汉字和标点统计(不包括空格和换行)
fi = open("天龙八部-网络版.txt", "r", encoding = "utf-8")
fo = open("统计.txt", "w", encoding='utf-8')#为什么这里必须加 encoding='utf-8'呢?
txt = fi.read()
d = {}
for c in txt:d[c] = d.get(c, 0) + 1
del d[' ']
del d['\n']
ls = []
for key in d:ls.append("{}:{}".format(key, d[key]))
fo.write(",".join(ls))
fi.close()
fo.close()
- 对其中的中文词语进行统计
大体类似上一个,不过加入了jieba进行切分
import jieba
fi = open("天龙八部-网络版.txt", "r", encoding = "utf-8")
fo = open("统计分词.txt", "w", encoding='utf-8')
txt = fi.read()
words = jieba.lcut(txt)
d = {}
for w in words:d[w] = d.get(w, 0) + 1
del d[' ']
del d['\n']
ls = []
for key in d:ls.append("{}:{}".format(key, d[key]))
fo.write(",".join(ls))
fi.close()
fo.close()
实例3、生成随机密码
import random
random.seed(0x1010)
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
ls = []
excludes = ""
while len(ls) < 10:pwd = ""for i in range(10):pwd += s[random.randint(0, len(s)-1)]if pwd[0] in excludes:#密码的首字符是不一样的continueelse:ls.append(pwd)excludes += pwd[0]print("\n".join(ls))fo = open("随机密码.txt", "w")
fo.write("\n".join(ls))
fo.close()
实例4、词频统计
- 列出位于前100个的词语
names = ["命运", "寻梦"]
for name in names:fi = open(name+"-网络版.txt", "r", encoding="utf-8")fo = open(name+"-字符统计.txt", "w", encoding="utf-8")txt = fi.read()d = {}for c in txt:d[c] = d.get(c, 0) + 1del d['\n']ls = list(d.items())ls.sort(key=lambda x:x[1], reverse=True)for i in range(100):ls[i] = "{}:{}".format(ls[i][0], ls[i][1])fo.write(",".join(ls[:100]))fi.close()fo.close()
- 在上一个词频统计基础上,再统计两个文件中相同字符
def getList(name):f = open(name+"-字符统计.txt", "r", encoding="utf-8")words = f.read().split(',')for i in range(len(words)):words[i] = words[i].split(':')[0]f.close()return words
def main():fo = open("相同字符.txt", "w")ls1 = getList("命运")ls2 = getList("寻梦")ls3 = []for c in ls1:if c in ls2:ls3.append(c)fo.write(",".join(ls3))fo.close()
main()
实例5、星座输出
- 循环读取星座,并输出对应的日期范围以及字符对应形式
#读入CSV格式数据到列表中
fo = open("SunSign.csv","r", encoding='utf-8')
ls = []
for line in fo:line = line.replace("\n","")ls.append(line.split(","))
fo.close()while True:InputStr = input() # 请输入星座名称,例如双子座InputStr.strip()flag = Falseif InputStr == 'exit':breakfor line in ls:if InputStr == line[0]:print("{}座的生日位于{}-{}之间。".format(chr(eval(line[3])),line[1],line[2]))flag = Trueif flag == False:print("输入星座名称有误!")
【计算机二级Python】主观题(总结版)相关推荐
- 【计算机二级Python】阶段性总结版
二级备赛系列博文 [计算机二级Python]客观题(总结版) [计算机二级Python]主观题(总结版) [计算机二级Python]易忘知识点总结 [计算机二级Python]阶段性总结版 ch7.文件 ...
- 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考试2021-优秀成绩实战总结
计算机二级python考试-看这一篇就够了 温馨提示:如果你有一定的编程基础,能有一些python基础最好了,纯小白无编程基础这份攻略不太适合,毕竟谁都不想浪费在阳间的5分钟- 大家好,参加是的202 ...
- 计算机二级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计算生态等等. 计 ...
最新文章
- Oslo团队研发首个形态自适应机器人 | AI日报
- 英国熊孩子频繁攻击学校网络,政府被逼爹味儿下场:当白帽黑客吧!年薪45万...
- 升级 | Fastjson 1.2.68 发布,支持 GEOJSON
- Quartus11中新建工程
- BSD和云 – 不可错过的BSD聚会
- 案例:返回固定页面的http服务器
- html给文字添加阴影效果,text-shadow css文字阴影_字体投影属性样式
- problem a: 简单的整数排序_python里的排序
- ARMA模型的性质 1
- Visual Studio的下载安装
- 即将毕业的大学生,还在盲目跟风学Python吗?某位科大教授有话说
- 开发一个大型后台管理系统,真的需要用前后端分离的技术方案吗?
- paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决
- Mac配置双网卡使内外网同时访问
- 人脸识别接口_双目模组摄像头人脸识别技术中活体检测
- validate简介及使用方法与默认的校验规则
- ajax 后面接什么,什么是AJAX?
- 帆软所有销量为0的显示为空值_fineReport网络报表工具使用总结
- 树莓派第一次使用WIN10电脑远程连接(无显示器)
- Hibernate查询语句拼接乱码问题
热门文章
- lm2776dbvr_LM2776DBVR和LM2776DBVT区别
- 暗藏玄机!历代iPhone邀请函回顾
- 概率论与数理统计——高斯分布的学习笔记
- 查询重复项以及删除重复项
- Minecraft ForgeOptifine安装方法
- VScode远程连接服务器-解决“过程试图写入的管道不存在“报错
- easywechat6基于公众号分享朋友or朋友圈
- (附源码)springboot大学生兼职网站开发与设计 毕业设计311734
- 函数的return,返回值
- 美国python课程 得a_干货:五门CS基础课推荐(价值两万多美元的美国名校课程,零基础,转专业都可学!...