二级备赛系列博文

  • 【计算机二级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】主观题(总结版)相关推荐

  1. 【计算机二级Python】阶段性总结版

    二级备赛系列博文 [计算机二级Python]客观题(总结版) [计算机二级Python]主观题(总结版) [计算机二级Python]易忘知识点总结 [计算机二级Python]阶段性总结版 ch7.文件 ...

  2. python考证书-计算机二级 Python 怎么考?考什么?

    2020.09.26更新:今天的二级python最后一个大题考试内容(部分),没考试的同学大家还可以最后挣扎一下. /> ==================================== ...

  3. python计算机二级含金量-计算机二级 Python 怎么考?考什么?

    2020.09.26更新:今天的二级python最后一个大题考试内容(部分),没考试的同学大家还可以最后挣扎一下. /> ==================================== ...

  4. 【计算机二级Python】考试攻略及资料汇总

    目录 1 考试大纲 2 学习教材推荐 3 学习网站推荐 3.1 编程零基础网课 3.2 有编程基础网课 4 模拟和真题试卷资料 5 相关链接 1 考试大纲 2018版python考试题纲PDF 2 学 ...

  5. 计算机二级python考试2021-优秀成绩实战总结

    计算机二级python考试-看这一篇就够了 温馨提示:如果你有一定的编程基础,能有一些python基础最好了,纯小白无编程基础这份攻略不太适合,毕竟谁都不想浪费在阳间的5分钟- 大家好,参加是的202 ...

  6. 计算机二级python考试题型和分值

    计算机二级python 一. 题型及分值分布1.      单选题共40道,1到10题为公共基础知识,11到40题是python相关的知识,比如数据结构与算法.python基础知识. 每道题1分,共4 ...

  7. 计算机二级python基础知识总结-计算机二级python 知识点篇(程序的控制结构)...

    计算机二级python 知识点篇(程序的控制结构) 程序的基本结构 程序由三种基本结构组成: 顺序结构. 分支结构和循环结构 分支结构 单分支结构 if and 表示多个条件"与" ...

  8. 计算机二级python用什么书-如何准备全国计算机二级Python?

    如果你也和我一样是零基础学习,希望你过! 以下是我的回答提纲 /> 一.参考过的知乎回答这是我找到的最全面的备考攻略,第一推荐!!考完发现他还有更新!!曹操:计算机二级 Python 怎么考?考 ...

  9. 计算机二级python用什么书-计算机二级python考什么?

    计算机二级python考的内容有:1.Python语言基本语法元素:2.基本数据类型:3.程序的控制结构:4.函数和代码复用:5.组合数据类型:6.文件和数据格式化:7.Python计算生态等等. 计 ...

最新文章

  1. Oslo团队研发首个形态自适应机器人 | AI日报
  2. 英国熊孩子频繁攻击学校网络,政府被逼爹味儿下场:当白帽黑客吧!年薪45万...
  3. 升级 | Fastjson 1.2.68 发布,支持 GEOJSON
  4. Quartus11中新建工程
  5. BSD和云 – 不可错过的BSD聚会
  6. 案例:返回固定页面的http服务器
  7. html给文字添加阴影效果,text-shadow css文字阴影_字体投影属性样式
  8. problem a: 简单的整数排序_python里的排序
  9. ARMA模型的性质 1
  10. Visual Studio的下载安装
  11. 即将毕业的大学生,还在盲目跟风学Python吗?某位科大教授有话说
  12. 开发一个大型后台管理系统,真的需要用前后端分离的技术方案吗?
  13. paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决
  14. Mac配置双网卡使内外网同时访问
  15. 人脸识别接口_双目模组摄像头人脸识别技术中活体检测
  16. validate简介及使用方法与默认的校验规则
  17. ajax 后面接什么,什么是AJAX?
  18. 帆软所有销量为0的显示为空值_fineReport网络报表工具使用总结
  19. 树莓派第一次使用WIN10电脑远程连接(无显示器)
  20. Hibernate查询语句拼接乱码问题

热门文章

  1. lm2776dbvr_LM2776DBVR和LM2776DBVT区别
  2. 暗藏玄机!历代iPhone邀请函回顾
  3. 概率论与数理统计——高斯分布的学习笔记
  4. 查询重复项以及删除重复项
  5. Minecraft ForgeOptifine安装方法
  6. VScode远程连接服务器-解决“过程试图写入的管道不存在“报错
  7. easywechat6基于公众号分享朋友or朋友圈
  8. (附源码)springboot大学生兼职网站开发与设计 毕业设计311734
  9. 函数的return,返回值
  10. 美国python课程 得a_干货:五门CS基础课推荐(价值两万多美元的美国名校课程,零基础,转专业都可学!...