Python review
Lukeclever ComputerSavvyMedic
It has been 0 days since the last update of this post. Some contents may be outdated. Please pay attention to screening.

Python 相关复习资料,包括网络平台题库、期末复习、基本函数、题库、基本方法和常用函数等。

python网络平台题库

1 C以下代码的输出结果是__________。
x=12+3*((58)-14)//6
print(x)
• A、25.0
B、24
C、25
D、65
2 A表达式3**2
5//6%7的计算结果是________。
• A、0
B、1
C、4
D、2
3 B在Python语言中,不能作为变量名的是________。
• A、student
B、2age
C、_reg
D、use_time
4 B以下关于Python字符编码的描述中,正确的是__________。
• A、Python字符编码使用ASCII编码存储
B、chr(x)和ord(x)函数用于在单字符和Unicode 编码值之间进行转换
C、print(chr(‘a’))输出97 应该是print(ord(“a”))
D、print(ord(65))输出A
5 D表达式int(-3.5)+pow(2,3)+round(3.1415,2)的计算结果是________。
• A、7.64
B、6.14
C、7.14
D、8.14
1B以下代码的输出结果是_________。
lis=list(range(4))
print(lis)
A、[0, 1, 2, 3,4]
B、[0, 1, 2, 3]
C、0,1,2,3,
D、0,1,2,3,4
2 A以下程序的输出结果是__________。
ls1 = [1,2,3,4,5]
ls2 = ls1
ls2.reverse()
print(ls1)
• A、[5, 4, 3, 2, 1]
B、[1,2, 3,4,5]
C、1,2, 3,4,5
D、5, 4, 3, 2, 1
3C下列能删除字符串s=”ab34cd”中数字的语句是________。
• A、del s[2:4]
B、s[2:4]=[]
C、s=s[0:2]+s[-2:]
D、s[2:4]=””
4B 二维表ls = [[9, 8], [7, 6],[5, 4], [3, 2], [1, 0]],能够获得数字4 的选项是__________。
• A、ls[3][-1]
B、ls[-3][-1]
C、ls[2][0]
D、ls[-2][0]
5C关于Python元组类型,以下选项中描述错误的是__________。
• A、元组不可以被修改
B、Python中元组使用圆括号和逗号表示
C、元组中的元素要求是相同类型
D、一个元组可以作为另一个元组的元素,可以采用多级索引获取信息
1A以下关于Python中字典的描述正确的是__________。
• A、字典是由大括号{ }建立,每个元素都是一个键值对
B、创建字典只能通过dict()函数
C、字典中不可以嵌套字典
D、使用del语句进行字典操作时,不需要指定字典名和要删除的键
2D以下不能创建一个字典的语句是__________。
• A、dic = { }
B、dic = {1 : 5}
C、dic = {(1, 2) : “use”}
D、dic = {[1, 2] : “use”}
3A下面代码输出的结果是__________。
a = divmod(5, 2) 2,1
b = divmod(2, 6) 0,2
c = set(a + b)
print(sum(c))
• A、3
B、5
C、2
D、0
4D下列关于Python的描述正确的是__________。
• A、列表的下标是从1开始的
B、元组的元素值可以修改、删除、连接
C、字典中的“键”只能是整数、字符串
D、集合分为可变集合和不可变集合,可变集合的元素可以添加、删除
5B以下代码的输出结果是__________。
test = {“age” : “18”, “score” : “[89,95]”, “name” : “Hawking”}
print(test[“score”], test.get(“name”, “Rose”))
• A、89, 95 Hawking
B、[89, 95] Hawking
C、[89, 95] Rose
D、[89, 95] name
1C以下关于分支结构的描述中,错误的是_________。
• A、if语句中语句块执行与否依赖于条件判断
B、if 语句中条件部分可以使用任何能够产生 True和False 的语句和函数
C、二分支结构有一种紧凑形式,使用保留字if和elif实现
D、多分支结构用于设置多个判断条件以及对应的多条执行路径
2C下面代码的输出结果是__________。
x = 10
while x:
x -= 1
if x % 2:
print(x, end=”)
else:
pass
• A、86420
B、975311
C、97531
D、864200
3A下面代码的输出结果是__________。
for i in range(3):
for j in “dream”:
if j == “e”:
continue
print(j, end=””)
• A、dramdramdram
B、drdrdr
C、dreamdreamdream
D、dream
4A下列代码的输出结果是__________。
ls = [[0, 1], [5, 6], [7, 8]]
lis = []
for i in range(len(ls)):
lis.append(ls[i][1])
print(lis)
• A、[1, 6, 8]
B、[0, 5, 7]
C、[0, 6, 8]
D、[0, 1]
5C下列程序给出了根据给定两个长度相同的列表来建立字典的过程,把程序补充完整。
list1=[‘20160101’,’20160102’,’20160103’,’20160104’,’20160105’]
list2=[‘Tom’,’Jerry’,’Max’,’Rose’,’Jane’]
dict1={}
lens=len(list1)
for i in range(lens):
____________________
print(dict1)
• A、dict1=list1[i],list2[i]
B、dict1={list1[i],list2[i]}
C、dict1[list1[i]]=list2[i]
D、dict1(list1[i])=list2[i]
1输入任意正整数n,求n的阶乘并输出。请将下列代码补充完整。
n=int(input(‘n=’))
fact=1
for i in _________
______________
print(n,’!=’,fact)
第一空: range(2,n+1)
第二空: fact*=i
2输入任意一个字符串s,求s的逆序并输出。请将下列代码补充完整。
s=input(‘s=’)


for i in s:
t=___________
print(t)
第一空: t=””
第二空: i+t
3求m和n的最大公约数并输出。请将下列代码补充完整。
n = int(input(“请输入第一个数:”))
m = int(input(“请输入第二个数:”))
r = __________
while __________
n = m
m = r
r = n % m
print(____)
第一空: n%m
第二空: r!=0:
第三空: m
4下面程序的功能是,找出所有三位数中每一位数字都是素数的数。请完善下面的程序。
for i in range(100,1000):
st=str(i)
flag=True
for j in st: ##判断一个数的各位数字是否是素数
if int(j)<2:
flag=False
______________
else:
for k in range(2,int(
)):
if int(j) % k==0:
flag=False
break
if flag==False:

            break
if flag==________:
    print(i)

第一空: break
第二空: j
第三空: True
2.2 变量的作用域
1D【单选题】以下程序的输出结果是__________。
img1 = [12,34,56,78]
img2 = [1,2,3,4,5]
def modi():
img1 =img2
print(img1)
modi()
print(img1)
• A、[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
• B、[12, 34, 56, 78]
[1, 2, 3, 4, 5]
• C、[12, 34, 56, 78]
[12, 34, 56, 78]
• D、[1, 2, 3, 4, 5]
[12, 34, 56, 78]
2D以下程序的输出结果是__________。
s=10
def run(n):
global s
for i in range(n):
s+=i
return s
print(s,run(5))
• A、10 10
• B、UnboundLocalError
• C、20 20
• D、10 20
3C下面代码的输出结果是__________。
n = 2
def f(a):
n = bool(a - 2)
return n
b = f(2)
print(n, b)
• A、2 0
• B、False False
• C、2 False
• D、0 False
4A以下关于Python全局变量和局部变量的描述中,错误的是_________。
• A、当函数退出时,局部变量依然存在,下次函数调用可以继续使用
• B、全局变量一般指定义在函数之外的变量
• C、使用global保留字声明后,变量可以作为全局变量使用
• D、局部变量在函数内部创建和使用,函数退出后变量被释放
5B下面代码的输出结果是__________。
a = 1
def fun(a):
a = a + 2
return a
print(a, fun(a))
• A、1, 1
• B、1, 3
• C、3, 3
• D、3, 1
2.4 匿名函数-1
1D下面关于递归函数,描述错误的是__________。
• A、递归函数就是一个函数在内部调用自身本身
B、递归函数必须有一个明确的结束条件
C、递归效率不高,递归层次过多会导致栈溢出
D、每进入更深一层的递归时,问题规模相对于前一次递归是不变的
2、C以下关于匿名函数的描述,错误的是__________。
• A、lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式
B、在Python中,lambda表达式属于可调用对象
C、无法使用lambda表达式定义有名字的函数
D、g=lambda x:3是一个合法的赋值语句
3D下面代码的输出结果是__________。
def add(x):
if x>0:
return x+add(x-1)
else:
return 0
result=add(10)
print(result)
• A、0
B、10
C、45
D、55
• 4A下面代码的输出结果是__________。
f=lambda x,y:x if x<y else y
a=f(“aa”,”bb”)
b=f(“bb”,”aa”)
print(a,b)
• A、aa aa
B、aa bb
C、bb aa
D、bb bb
5、B下面代码的输出结果是__________。
def f(n):
if n==1:
return 1
else:
return nf(n-1)
print(f(4))
• A、0
• B、24
• C、4
D、10
2.5.1 函数基础实例
1 编写判断一个数n是否为完数的函数,如果是完数,返回True。一个数如果恰好等于它的因子之和,这个数就称为“完数”。请将下列代码补充完整。
def ws(n):
sum=0
for i in ___________
if n%i==0:
_____________
if sum==n:
______________
第一空: range(1,n):
第二空: sum+=i
第三空: return True
2编写求两个正整数最小公倍数的函数,返回值的类型也是正整数(提示:a变量中记录两个数的乘积)。请将下列代码补充完整。请将下列代码补充完整。
def lcd(m,n):
r=m%n
a=__________
while ___________
m=n
n=r
r=m%n
return ___________
第一空: m
n
第二空: r!=0:
第三空: a//n
3 编写判断一个数n是否为回文数的函数,如果是,返回True,若不是,则返回False。回文数是指其正序与逆序相同的数。请将下列代码补充完整。
def judge(n):
s=str(n)
t=’’
for i in s:
t=____________
if _____________
return True
else:
return False
第一空: i+t
第二空: t==s:
4 编写判断一个数n是否为降序数的函数,如果是,返回True,若不是,则返回False。降序数是指一个自然数的高位数大于低位数的数。请将下列代码补充完整。
def jx(n):
s=_____________

for i in range(len(s)-1):
    if _____________
        return False
return True

第一空: str(n)
第二空: s[i]<=s[i+1]:

2.5.2 函数综合-1
1、键盘输入字符串s,按要求把s输出到屏幕,格式要求:宽度为30个字符,星号字符填充,居中对齐。如果输入字符串超过30位,则全部输出。
s=input(‘请输入一个字符串:’)
print(“{_________}”.format(s))
第一空: :^30
2、a和b是两个列表变量,列表a为[11,3,8]已给定,键盘输入列表b,计算a中元素与b中对应元素乘积的累加和。例如:键盘输入列表b为[4,5,2],累加和为11
4+3
5+8*2=75,因此屏幕输出结果为75。
a = [11,3,8]
b =eval(input(“b列表为:”))


for i in ___________
s += a[i]b[i]
print(s)
第一空: s=0
第二空: range(0,3):
3、随机生成5个在1(含)到50(含)之间的随机整数,每个整数后随一个空格进行分隔,屏幕输出这5个随机数。
import random
for i in range():
print(
, end=” “)
第一空: 5
第二空: random.randint(1,50)
4、从键盘输入一个1-26之间的数字,对应于英文字母表中的索引,在屏幕上显示输出对应的英文字母。例如输入一个数字1,则输出大写字母A。
s = eval(input(“请输入一个数字:”))
t= [0]
for i in range(65,91):
t.append(chr(
___
))
print(“输出大写字母:{}”.format())
第一空: i
第二空: t[s]
5、键盘输入十进制整数,按要求将这个整数转化为二进制和十六进制(大写)屏幕输出。例如输入数字425,则输出对应的二进制数为110101001,十六进制数为1A9。
num = eval(input(“输入数字:”))
print(“对应的二进制数:{
}\n十六进制数:{
___}”.format(num))
第一空: 0:b
第二空: 0:X
6、请将列表lis内的重复元素删除,并输出,例如若列表为[2,8,3,6,5,3,8],输出为[2, 3, 5, 6, 8]。
lis = [2,8,3,6,5,3,8]
new_lis = ___________
print(new_lis)
第一空: list(set(lis))
2.5.2 函数综合-2
1 下面程序的功能是,生成10个三位随机整数,并求出每个随机整数各位数字阶乘之和。并按照如下格式输出:411:4!+1!+1!=26。请将程序完善。
import random
def fact(n):
if n==0 or n==1:
return 1
_______________
for i in range(1,n+1):
s
=i
return s

lis=[]
cnt=0
while cnt<10:
x=random.randint(100,999)
lis+=[x]
cnt___________
for i in lis:
sum1=0
st=””

t=___________
for j in t:

    sum1+=fact(int(j))
    st+=j+"!"+"+"

print(i,”:”,st[:],”=”,sum1)
第一空: s=1
第二空: +=1
第三空: str(i)
第四空: -1
2 下面程序的功能是,随机生成20个互不相等的三位数,找出其中的升序数并输出,如果没有升序数,请输出“无升序数!”所谓升序数是指从左往右依次递增的数,如:149,237。要求程序中包含判断一个数是否是升序数的通用函数。
请完善程序。
import random
def ascnum(n):
st=str(n)
for i in range(
___):
if st[i]>=st[i+1]:
return False
return True

lis=[]
cnt=0
while cnt<20:
x=random.randint(100,999)
if x not in ________:

    lis+=[x]
    cnt+=1

print(lis)
cnt=0
for n in lis:
if ______==True:
cnt+=1
print(n,end=” “)
if cnt==0:
print(“无升序数!”)
第一空: len(st)-1
第二空: lis
第三空: ascnum(n)
3 本程序的功能是,找出仅由1,2,3这3个数字组成的一位、二位、三位整数中的所有素数。
请完善程序。
def prime(n):
if n<2:
return False
for i in range(
,n):
if n % i==0:
return False
return True

s=”123”
for i in range(1,334):
______________
n=str(i)
for j in n:
if j not in s:
flag=False
______________
if flag==True:
if prime(i):
print(i)
第一空: 2
第二空: flag=True
第三空: break
3.1 文件_选择题
1 B
【单选题】
以下关于文件的描述中,正确的是_________
• A、使用 open()打开文件时,必须要用r或w指定打开方式,不能省略
B、采用 readlines()可以读人文件中的全部文本,返回一个列表
C、文件打开后,可以用 write()控制对文件内容的读写位置
D、如果没有采用close()关闭文件,Python程序退出时文件将不会自动关闭
2 D以下不属于Python文件操作方法的是_________。
• A、read()
B、write()
C、readline()
D、join()
3 B属于 Python 读取文件一行操作的是_________。
• A、readtext
B、readline
C、readall
D、read
4 C文件family.txt在当前代码所在目录内,其内容是一段文本:We are family, 以下代码的输出结果是_________。
txt=open(“family.txt”,”r”)
print(txt)
txt.close()
• A、txt
B、family.txt
C、其他选项均不正确
D、We are family
5 C在Python语言中,写文件操作时定位到某个位置所用到的函数是_________。
• A、write()
B、writeall()
C、seek()
D、writetext()
3.2 文件_填空题
1 随机产生100个两位正整数存入文件”testdata.txt”中,要求数据之间用逗号间隔。
import random
f=_________(“testdata.txt”,”w”)


for i in range(100):
s+=str(random.)+”,”
f.
(s[:-1])
f.close()
第一空: open
第二空: s=””
第三空: randint(10,99)
第四空: write
2 读取文件”testdata.txt”中的数据(该文件内容为逗号间隔的若干数值),求出这些数值的和,存入文件”testdata_sum.txt”中。
f=open(“testdata.txt”)
fdata=f._________
datalist=eval(“[“+fdata+”]”)
datasum=(datalist)
f.

f=open(“testdata_sum.txt”,”“)
f.write(
)
f.close()
第一空: read()
第二空: sum
第三空: close()
第四空: w
第五空: str(datasum)
3 以下程序输出到文件testfile.txt里的结果是__________。
f=open(“testfile.txt”,”w”)
data=[“Python”,”C++”,”VB”]
f.writelines(data)
f.close()
第一空: Python C++ VB
5.1.2 三方库
1、B下面不属于Python第三方库的安装方法的是________。
• A、pip工具安装
• B、go get命令安装
• C、自定义安装
• D、文件安装
2、A不属于Python机器学习第三方库的是__________。
• A、Pylons
• B、tensorflow
• C、keras
• D、mxnet
3、C在Python语言中,用于数据分析的第三方库是_______。
• A、OpenCV
• B、matplotlib
• C、numpy
• D、scrapy
4、A以下属于Python中Web开发框架第三方库的是__________。
• A、Django
• B、TinyDB
• C、audiolazy
• D、Pattern
5、B下面关于Python标准库和第三方库的说法正确的是__________。
• A、Python的第三方库是随着Python安装时默认自带的库
• B、Python的标准库和第三方库的调用方式都一样,都需要用import语句调用
• C、Python的第三方库需要用import语句调用,而标准库不需要
• D、Python的标准库需要用import语句调用,而第三方库不需要
6、C不属于Python开发用户界面第三方库的是_________。
• A、PyGObject
• B、PyQt
• C、time
• D、PyGTK
7、B不属于Python 数据分析及可视化处理第三方库的是_________。
• A、seaborn
• B、random
• C、mayavi2
• D、numpy
8、A在 Python语言中,包含矩阵运算的第三方库是_________。
• A、numpy
• B、PyQt5
• C、wordcloud
• D、wxPython
9、D在Python 语言中,能够处理图像的第三方库是_________。.
• A、pyinstaller
• B、pyserial
• C、pygame
• D、PIL
10、B在Python语言中,用来安装第三方库的工具是__________。
• A、install
• B、pip
• C、PyQt5
• D、pyinstaller
5.1.5 jieba填空
1、键盘输入一句话,用jieba分词后,将切分的词组按照在原话中的逆序输出到屏幕上,词组中间没有空格。例如输入:我爱中国,输出:中国爱我。
import jieba
txt = input(“请输入一段中文文本:”)


for i in ls[::-1]:
________________
第一空: ls=jieba.lcut(txt)
第二空: print(i,end=””)
2、键盘输入一段文本,保存在一个字符串变量s中,分别用Python内置函数及jieba库中已有函数计算字符串s的中文字符个数及中文词语个数。注意:中文字符包含中文标点符号。例如:
键盘输入:
科技是第一生产力
屏幕输出:
中文字符数为8,中文词语数为4。
import jieba
s = input(“请输入一个字符串:”)
n = ________
m = _________
print(“中文字符数为{},中文词语数为{}。”.format(n, m))
第一空: len(s)
第二空: len(jieba.lcut(s))
3、使用jieba库,把题目给出的文本进行分词,并将分词后的结果输出。


s = “一件事情没有做过,就没有资格对此事发表看法”
ls = ___________
print(ls)
第一空: import jieba
第二空: jieba.lcut(s)
4、程序的目录下有一文件data. txt,是一个来源于网上的技术信息资料。对文件data. txt进行分词,对长度不少于3个字符的关键词,统计出现的次数,按照出现次数由大到小的顺序输出到文件out1. txt, 每行一个关键词及其出现次数,例如:
人工智能:24
同心圆:3
计算机:3
一部分:2
DeepMind:2
AlphaGo:2
learning:2
1956:2
科学家:2
日常生活:1
……
请完善下面的程序。
import jieba
f=open(“data.txt”,”r”)
data=f.read()
f.close()
f=open(“out1.txt”,”w”)
data1=jieba.lcut(data)
d={}
for x in data1:
if >=3:
d[x]=
+1
ls=list(d.items())
ls.sort(key=lambda x:
,reverse=True)
for lis in ls:
f.write(lis[0]+’:’+
____+’\n’)
f.close()
第一空: len(x)
第二空: d.get(x,0)
第三空: x[1]
第四空: str(lis[1])
5.2.4-1 不同维度数据处理选择题
1D以下关于数据维度的描述,错误的是______。
• A、一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中的集合或数组的概念
• B、二维数据由关联关系构成,采用表格方式组织,对应于数学中的矩阵
• C、高维数据由键值对类型的数据组成,采用对象方式组织
• D、一维数据是由对等关系的有序数据构成,无序数据不是一维数据
2A以下关于Python二维数据的描述中,错误的是_________。
• A、列表中保存的二维数据,可以通过循环用writelines()写入CSV文件
• B、CSV文件的每一行是一维数据,可以用列表、元组表示
• C、从CSV文件获得数据内容后,可以用replace()来去掉每行最后的换行符
• D、若一个列表变量里的元素都是字符串类型,则可以用join()合成字符串
3D以下对CSV格式描述正确的是__________。
• A、CSV文件以英文特殊符号分隔元素
• B、CSV文件以英文分号分隔元素
• C、CSV文件以英文空格分隔元素
• D、CSV文件以英文逗号分隔元素
4D在Python语言中,读入CSV文件保存的二维数据,按特定分隔符抽取信息,最可能用到的函数是_________。
• A、read()
• B、join()
• C、replace()
• D、split()
5A假设city.csv 文件内容如下:
巴哈马,巴林,孟加拉国,巴巴多斯
白俄罗斯,比利时,伯利兹
以下代码的输出结果是_________。
f=open(“city.csv”,”r”)
ls=f.read().split(“,”)
f.close()
print(ls)
• A、[‘巴哈马’,‘巴林’,‘孟加拉国’,‘巴巴多斯\n白俄罗斯’,‘比利时’,‘伯利兹]
B、[‘巴哈马’,‘巴林’,‘孟加拉国’,‘巴巴多斯’,‘白俄罗斯’,‘比利时’,‘伯利兹’]
C、[‘巴哈马,巴林,孟加拉国,巴巴多斯,白俄罗斯,比利时,伯利兹’]
D、[‘巴哈马’,‘巴林’,‘孟加拉国’,‘巴巴多斯’,‘\n’,白俄罗斯’,‘比利时’,‘伯利兹’]
5.2.4-2 不同维度数据处理填空题
1《卖火柴的小女孩》是丹麦童话故事作家安徒生的一篇童话故事,发表于1846年。主要讲了一个卖火柴的小女孩在富人阖家欢乐、举杯共庆的大年夜冻死在街头的故事。这里给出《卖火柴的小女孩》的一个网络版本文件,文件名为“小女孩.txt”。 对该文件进行字符频次统计,将所有字符按照频次从高到低排序,字符不包含标点符号及空格、回车符等。将排序后的字符及频次按参考格式输出到文件名为“词频统计.txt”的文件之中。参考格式如下:
的:83,一:63,了:60,她:56,着:30,那:29,火:29,是:24,小:23,这:22,上:22……
备注:代码中的string.punctuation是获取所有的英文标点,string.whitespace是获取所有的空白字符(如回车,缩进等)
小女孩.txt


fi=open(“小女孩.txt”,”r”)
fo=open(“词频统计.txt”,”w”)
txt=fi.read()
fi.close()
d={}
exclude=string.punctuation+string.whitespace+”,。!?、()【】:;《》……——“”‘’”
for word in txt:
if word not in exclude:
d[word]=__________
ls=list(d.items())
ls.sort(key=lambda item:,reverse=True)
for i in range(len(ls)):
ls[i]=”{}:{}”.format(ls[i][0],ls[i][1])
fo.write(
)
fo.close()
第一空: import string
第二空: d.get(word,0)+1
第三空: item[1]
第四空: “,”.join(ls)
2读入vacations.csv文件数据,先得到2018年的节假日放假日期。再获得用户输入,根据用户输入的一组整数序号(序号间采用空格分隔,以回车结束),输出这些序号对应的节假日的名称、假期范围。要求每个节假日信息一行。若输入的序号有误,则给出对应的提示信息。 参考输入和输出示例格式如下:
请输入节假日序号:1 5 10 15
元旦(1)假期是12月30日至01月01日之间
端午节(5)假期是06月16日至06月18日之间
输入节假日编号10有误!
输入节假日编号15有误!
vacations.csv
fi=open(“vacations.csv”,”r”)
ls=__________
for line in fi:
ls.append(line.strip(“\n”).)
fi.close()
s=input(“请输入节假日序号:”)
while s!=””:
slist=

for i in slist:
flag=False
for line in ls:
if :
print(“{}({})假期是{}月{}日至{}月{}日之间”.format(line[1],line[0],line[2][:2],line[2][2:],line[3][:2],line[3][2:]))
__________
if flag == False:
print(“输入节假日编号{}有误!”.
)
s=input(“请输入节假日序号:”)
第一空: []
第二空: split(“,”)
第三空: [s,split]
第四空: i==line[0]
第五空: flag=True
第六空: format(i)

5.2.6-1 微博数据分析
1利用课程中提供的微博数据,统计出微博数据来源及其出现的次数,再对出现次数进行排序,并将排名前10的微博数据来源输出到窗体,格式如下:
新浪微博:24979
iPhone客户端:11123
Android客户端:8892
皮皮时光机:5711
微话题:2946
专业版微博:2410
360浏览器超速版:2200
分享按钮:2139
FaWave:1694
微博桌面:1641
请完善程序:
import os
def readfiles(dir1):
filedata=[]
filelist=os.listdir(dir1)
for files in filelist:
sfilename=dir1+”/“+files
fileread=open(sfilename,’r’,encoding=’utf-8’)
for line in fileread:
filedata+=eval(line)
fileread.close()
return filedata
dictlist=readfiles(os.getcwd() +”/二胎数据”)
sourcedict={}
for dic in dictlist:
sourcedict[dic[“source”]]=sourcedict.get(dic[“source”],0)+1
sourcelist=____________________
sourcelist.sort(key=lambda x:x[1],)
for k in range(10):
print(“{}:{}”.format(
))
第一空: list(sourcedict.items())
第二空: reverse=True
第三空: sourcelist[k][0],sourcelist[k][1]
2利用问题1中的dictlist中的信息,得到微博报告数最多的(reportCount)的内容。请完善程序:
dictlist=readfiles(os.getcwd() +”/二胎数据”)
maxpos=0
for i in range(1,
):
if int(
__________
[“reportCount”])>int(_____________ [“reportCount”]):
maxpos=i
print(“报告数最多的:”,dictlist[maxpos][])
print()
第一空: len(dictlist)
第二空: dictlist[i]
第三空: dictlist[maxpos]
第四空: “content”
3利用问题1中的dictlist中的信息,搜索微博内容中包含多个关键字的话题。(多个关键字之间用空格间隔) 如:
请输入你关心的话题(多关键字用空格隔开):二胎 北京 文章
输出:
《北京晨报》的专题“公众热议:单独生二胎难见效果?”节选了我的文章《放开单独二胎没有积极意义》:http://t.cn/zRoIWP8
…………
请完善程序:
dictlist=readfiles(os.getcwd() +”/二胎数据”)
while True:
findinfo=input(“请输入你关心的话题(多关键字用空格隔开):”)
if findinfo==”#”:
break
findlist=findinfo.

for dic in dictlist:
bfind=
_________
for info in findlist:
bfind=bfind _______ (info in dic[‘content’])
if bfind:
print(dic[‘content’])
print()
第一空: split(“ “)
第二空: True
第三空: and
5.2.6-2 量表调查
1 现有一个调查问卷investigate,其内容如下:
[{‘questionNo’: 1, ‘title’: ‘你使用网络是否方便?’, ‘optionnum’: 3, ‘style’: 0, ‘options’: [‘方便’, ‘一般’, ‘不方便’]}, {‘questionNo’: 2, ‘title’: ‘你知道的医学网站有哪些?(多选)’, ‘optionnum’: 6, ‘style’: 1, ‘options’: [‘国际性综合生物医学信息书目数据库’, ‘中国基础设施工程’, ‘丁香园’, ‘网上临床医学信息服务系统’, ‘万方数据库’, ‘其他(百度等)’]}, ……, {‘questionNo’: 15, ‘title’: ‘你知道的现阶段学校提供的有关的网络医学资源有哪些?(填空)’, ‘optionnum’: 0, ‘style’: 2}]
现要根据该调查文本的内容进行调查,并统计调查结果。
其中,’questionNo’为该题目的实际题号;’title’为问题的题干;’optionnum’为选项数目;’style’为该问题的类型(0为单选,1为多选,2为填空);’options’为选项内容构成的列表。
现用student_status文件记录应该参加问卷调查的学生的状态,如下图,0表示未参加,1表示已参加。不在该字典的学生没有权限参与调查。

用户输入的问卷结果以下图格式存储(注意,匿名调查,不记录学号)在answers文件中:

每个参与调查的学生问卷结果为一个字典,字典的键为实际题号,字典的值为用户选择的选项的序号或填空填入的内容。
要求如下:

  1. 随机顺序展示问卷;
  2. 若单选题输入多个选项给出错误提示“该题为单选,请重新选择!“,并让用户重新输入答案;
  3. 答案中若出现选项中没有的选项,给出对应提示,如没有选项M,则提示“没有选项M,请重新选择!“
  4. 若用户输入的答案为空,则提示“答案不能为空!请重新选择!“
  5. 要求选项随机顺序显示(特别要注意,根据用户的答案应该记录这些选项的实际序号,而非随机顺序之后的序号)
    运行的部分效果如下图:

相关文件请下载:
问卷调查.rar
import random
#———-从文件student_status中读出记录了可参与调查的人员名单及是否已参与调查的状态的字典———-
f=open(“student_status”,”r”)
studentdic=eval(f.read())
f.close()
#———-从文件student_status中读出记录了可参与调查的人员名单及是否已参与调查的状态的字典———-
while True:
studentno=input(“请输入您的学号(退出请输入‘#’):”)
if studentno==”#”:
break
elif studentno __________ studentdic:
print(“您没有参与调查的权限!”)
elif studentdic[studentno]==1:
print(“您已参与过调查,感谢您的参与!”)
else:
f=open(“investigate”,”r”)
questionlist=__________
f.close()
random.shuffle(questionlist) #随机生成调查题目次序
answerdic={}
tempno=1 #tempno为展示给用户的虚拟序号
for question in questionlist:
print(“{}、{}”.format(tempno,)) #展示问卷的标题
if question[“style”]!=2:
#—————选择题的选项显示—————
optionlist=question[“options”][:]
random.shuffle(
) #选项乱序
optionstr=””
optionsno=”ABCDEFGHIJ”[:question[“optionnum”]]
for i in range(len(optionlist)):
optionstr+=optionsno[i]+”. “+optionlist[i]+” “
print(optionstr)
#—————选择题的选项显示—————
#———-提示用户输入并记录结果(包括输入空、单选输入多选项、输入没有的选项等特殊处理)———-
while True:
answer=input(“您的选择:”)
if answer==__________:
print(“答案不能为空!请重新选择!”)
continue
if question[“style”]==0 and len(answer)>1:
print(“该题为单选,请重新选择!”)
__________
trueanswer=””
flag=True #flag用来标记是否答案中的选项均存在
for ch in answer:
if ch not in optionsno:
print(“没有选项”,ch,”,请重新选择!”)
__________
break
else:
trueanswer+=str(question[“options”].index(optionlist[optionsno.index(ch)])) #获取选项的真实序号
if flag:
answer=trueanswer
__________
#———-提示用户输入并记录结果(包括输入空、单选输入多选项、输入没有的选项等特殊处理)———-

        else:
            answer=input("你的答案:")
        answerdic[question[__________]]=answer
        tempno+=1
    #----------将存放该用户问卷调查结果的字典存入answers文件----------
    f=open("answers","a")
    f.write(__________+"\n")
    f.close()
    #----------将存放该用户问卷调查结果的字典存入answers文件----------
    #----------修改学生参与状态为1,并重新写回student_status文件----------
    studentdic[studentno]=1
    f=open("student_status","w")
    f.write(str(studentdic))
    f.close()
    #----------修改学生参与状态为1,并重新写回student_status文件----------

第一空: not in
第二空: eval(f.read())
第三空: question[“title”]
第四空: optionlist
第五空: “ “
第六空: continue
第七空: flag=False
第八空: break
第九空: “questionNo”
第十空: str(answerdic)
6.4.4-1 turtle填空1
1使用turtle库的turtle.right()函数和turtle.fd()函数绘制一个五角星,边长为200像素,5个内角度数为144,效果如下图所示。

请完善下面的程序:
from turtle import *
for i in ______:
fd(
)
______________
第一空: range(5)
第二空: 200
第三空: right(144)
2使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为200像素,画笔为2号笔的正五边形,正五边形5个内角均为108度,效果如下图所示,箭头与下图严格一致。

请完善下面的程序:
import ___________
turtle.pensize(2)
d=________
for i in range(5):
turtle.seth(d)
d+=________
turtle.fd(________)
第一空: turtle
第二空: 72
第三空: 72
第四空: 200
3 使用turtle库的turtle.color()函数和turtle.circle()函数绘制一个黄底黑边的圆形,半径为100。效果如下图所示。

请完善下面的程序:
import turtle
turtle.color(“black”,”yellow”)
turtle._____________
turtle.circle()
turtle.
___
第一空: begin_fill()
第二空: 100
第三空: end_fill()
6.4.4-2 turtle填空2
1 使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200的太阳花,效果如下图所示。

请完善下面的程序:
import turtle
turtle.color(“red”,”yellow”)
turtle._____________
for i in range(36):
turtle.fd()
turtle.left(
)
turtle.end_fill()
第一空: begin_fill()
第二空: 200
第三空: 170
2 使用turtle库的turtle.circle()函数、turtle.seth()函数和turtle.hideturtle()函数绘制一个四瓣花图形,效果如下图所示。

请完善下面的程序:
import turtle
for i in range():
turtle.seth(
)
turtle.circle(50,90)
turtle.seth(-90*(1-i))
turtle.circle(
)
turtle.
______
第一空: 4
第二空: 90*(i+1)
第三空: 50,90
第四空: hideturtle()
3 使用turtle库的fd()函数和right()函数绘制一个边长为100像素的正六边形,再用circle()函数绘制半径为60像素的红色圆内接正六边形。效果如下图所示。

请完善下面的程序:
from turtle import *
pensize(5)
for i in range(6):
fd()
right(
)
color(“red”)
circle(60,
_________
)
第一空: 100
第二空: 60
第三空: steps=6
7.1 综合应用选择题
1C 下面不属于Python的标准库的是________。
• A、time
• B、turtle
• C、pygame
• D、random
2D以下代码绘制的图形是__________。
import turtle as t
for i in range(1,7):
t.fd(50)
t.left(60)
• A、三角形
• B、正方形
• C、五角星
• D、六边形
3B以下程序输出到文件a.txt里的结果是__________。
fo=open(“a.txt”,’w’)
x=[‘春眠’,’处处’,’夜来’]
fo.writelines(x)
fo.close()
• A、’春眠’
‘处处’
‘夜来’
• B、春眠处处夜来
• C、春眠
处处
夜来
• D、’春眠’,’处处’,’夜来’
4C以下关于Python全局变量和局部变量的描述中,错误的是__________。
• A、局部变量在使用过后立即被释放
• B、全局变量一般没有缩进
• C、全局变量和局部变量的命名不能相同
• D、一个程序中的变量包含两类:全局变量和局部变量
5C设 strl =’* @ python@ * ‘,语句 print ( strl [2: ]. strip(‘@’))的执行结果是__________。
• A、python *
• B、* @ python@ *
• C、python@ *
• D、* python *
7.2 综合应用填空题
1 《三国演义》是中国古典四大名著之一,曹操是其中主要人物,文件 data. txt 给出《三国演义》简介。
问题:用Python 语言中文分词第三方库jieba对文件 data.txt 进行分词,并将结果写入文件out.txt,每行一个词,例如:
内容简介
编辑
整个
故事

东汉
末年

西晋
……
请完善以下程序:
import jieba
f=open(“data.txt”, “r”)
lines=f.readlines()
f.close()
f=open(“out.txt”, “w”)
wordlist=[]
for line in lines:
line=______________ #删除每行首尾可能出现的空白字符
wordlist+=________________ #用jieba分词,对每行内容进行分词,并添加至wordlist中
f.write(“\n”._______________) #将分词结果存到文件out.txt中
f.close()
data.txt
第一空: line.strip()
第二空: jieba.lcut(line)
第三空: join(wordlist)
2 使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单文件 name. txt给出,从这40名村民中选出一人当村长, 40人的投票信息由文件 vote.txt给出,每行是一张选票的信息,有效票中得票最多的村民当选。
问题1:请从vote.txt中筛选出无效票写入文件vote1. txt。有效票的含义是:选票中只有一个名字且该名字在name.txt 文件列表中,不是有效票的票称为无效票。
问题2: 给出当选村长的名字及其得票数。
请完善以下程序:
f=open(“name.txt”)
names=f.readlines()
f.close()
f=open(“vote.txt”)
votes=f.readlines()
print(votes)
f.close()
f=open(“vote1.txt”,”w”)
d={}
NUM=0
for vote in _________:
print(vote)

num= len(vote.split()) 
if num==1 and vote in __________:
    d[vote[:-1]]=________________ +1 
    NUM+=1 
else:
    f.write(___________)

f.close()
ls=list(d.items())
ls.sort(key=lambda s:s[1],)
name=

score=
____________
print(“有效票数为:{} 当选村长村民为:{},票数为:{}”.format(NUM,name,score))
name.txt
vote.txt
第一空: votes
第二空: names
第三空: d.get(vote[:-1],0)
第四空: vote
第五空: reverse=True
第六空: ls[0][0]
第七空: ls[0][1]
• 综合1
一.单选题(共10题,50.0分)
1以下关于Python二维数据的描述中,错误的是_____________。
• A、从CSV文件获得数据内容后,可以用replace()来去掉每行最后的换行符
B、若一个列表变量里的元素都是字符串类型,则可以用join()合成字符串
C、列表中保存的二维数据,可以通过循环用write()写入CSV文件
D、CSV文件的每一行是一维数据,可以用列表、元组和集合表示
我的答案:D
2以下的函数定义中,错误的是_____________。(5.0分)
• A、def vfunc(a,b=2):
• B、def vfunc(*a,b):
• C、def vfunc(a,b):
• D、def vfunc(a,b):
我的答案:B
3
表达式3
4**2//8%7的计算结果是_____________。(5.0分)
• A、6
• B、4
• C、2
• D、7
我的答案:A
4
给以下程序填空,能输出{0: [90, ‘Aele’], 1: [87, ‘Bob’], 2: [93, ‘lala’]}结果的选项是___________。
x=[90,87,93]
y=(“Aele”,”Bob”,”lala”)
z={}
for i in range(len(x)):
______________
print(z)
• A、z[i]=x[i],y[i]
• B、z[i]=list(zip(x,y))
• C、z[i]=[x[i],y[i]]
• D、z[i]=[x,y]
我的答案:C
5假设city.csv文件内容如下:
巴哈马,巴林,孟加拉国,巴巴多斯
白俄罗斯,比利时,伯利兹
以下代码的输出结果是:
f=open(“city.csv”,”r”,encoding=”utf-8”)
ls=f.readlines()
f.close()
print(ls)
• A、[‘巴哈马,巴林,孟加拉国,巴巴多斯\n白俄罗斯,比利时,伯利兹’]
• B、[[‘巴哈马’, ‘巴林’, ‘孟加拉国’, ‘巴巴多斯’], [‘白俄罗斯’, ‘比利时’, ‘伯利兹’]]
• C、[‘巴哈马,巴林,孟加拉国,巴巴多斯\n’, ‘白俄罗斯,比利时,伯利兹’]
• D、[[‘巴哈马’, ‘巴林’, ‘孟加拉国’, ‘巴巴多斯’, ‘\n’], [‘白俄罗斯’, ‘比利时’, ‘伯利兹’]]
我的答案:C
6以下程序的输出结果是_____________。
s=”Pame”
for i in range(len(s)):
print(s[-i],end=””)
• A、Pame
• B、Pema
• C、emaP
• D、ameP
我的答案:B
7以下程序的输出结果是_____________。
def fibRate(n):
if n<=0:
return -1
elif n==1:
return -1
elif n==2:
return 1
else:
L=[1,1]
for i in range(2,n):
L.append(L[-1]+L[-2])
return L[-2]/L[-1]
print(fibRate(5))
• A、0.6
• B、0.5
• C、-1
• D、0.625
我的答案:A
8以下代码的输出结果是:
x=”A\0B\0C\n”
print(len(x))
• A、9
• B、6
• C、7
• D、4
我的答案:B
9以下程序的输出结果是_____________。
ls=[[1,2,3],[[4,5],6],[7,8]]
print(ls[1][0]+ls[len(ls)-1])(5.0分)
• A、[1, 2, 3, 7, 8]
• B、[4, 5, 8]
• C、[4, 5, 7, 8]
• D、[1, 2, 3, 6]
我的答案:C
10以下程序的输出结果是_____________。
L1=[4,7,3,5]
L2=L1
L3=L1.copy()
L2.reverse()
L3.sort()
print(L1)
• A、3,4,5,7
• B、[3,4,5,7]
• C、5,3,7,4
• D、[5,3,7,4]
我的答案:D
二.填空题(共4题,50.0分)
1
使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200像素的正方形及一个紧挨四个顶点的圆形。效果如下图所示。

import turtle
turtle.pensize(2)
for i in range():
turtle.fd(200)
turtle.left(90)
turtle.left(
)
turtle.circle(*pow(2,0.5))
第一空: 4
第二空: -45
第三空: 100
2键盘输入字符串s,按要求把s输出到屏幕,格式要求:宽度为20个字符,等号字符=填充,居中对齐。如果输入字符串超过20位,则全部输出。例如:键盘输入字符串s为”PYTHON”,屏幕输出=======PYTHON=======
s = input(“请输入一个字符串:”)
print(“{
}”.format(s))
第一空: :=^20
3根据斐波拉契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2),输出不大于100的序列元素。例如:屏幕输出实例为:0,1,1,2,3,…(略)
a,b=0,1
while :
print(a,end=”,”)
a,b= ____________
第一空: a<=100
第二空: b,a+b
4键盘输入一组我国高校所对应的学校类型,以空格分隔,共一行,示例格式如下:
综合 理工 综合 综合 综合 师范 理工
统计各类型的数量,从数量多到少的顺序屏幕输出类型及对应数量,以英文冒号分隔,每个类型一行,输出参考格式如下:
综合:4
理工:2
师范:1
txt = input(“请输入学校类型序列: “)
schools=
___
d = {}
for school in schools:
d[school]=+1
ls = list(
)
ls.sort(key=lambda x:x[1],___________ ) # 按照数量排序
for k in ls:
print(“{}:{}”.format(k[0], k[1]))
第一空: txt.split(‘ ‘)
第二空: d.get(school,0)
第三空: d.items()
第四空: reverse=True
综合2
一.单选题(共10题,50.0分)
1以下程序的输出结果是__________。
s=”12,34,56,78”
print(s[::-1].split(“,”))
A、[‘87’, ‘65’, ‘43’, ‘21’]
• B、’87’, ‘65’, ‘43’, ‘21’
• C、78, 56,34, 12
• D、[78, 56,34, 12]
我的答案:A
2以下关于列表变量ls操作的描述中,错误的是______。
• A、ls.append(x):在ls最后增加一个元素
B、ls.clear():删除ls的最后一个元素
C、ls.copy():生成一个新列表,复制ls的所有元素
D、ls.reverse():反转列表ls中所有元素
我的答案:B
3以下程序的输出结果是__________。
x=3.1415926
print(round(x,3)+pow(round(x),2)*int(x))A、30.142
• B、21.142
• C、30.141
• D、21.141
我的答案:A
4关于以下代码的描述中,错误的是_________。
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
• A、执行该函数后,变量a的值为10
B、执行该函数后,变量b的值为100
C、执行该函数后,变量c的值为200
D、函数名为func
我的答案:C
5以下程序的输出结果是__________。
ls=[1,2,3]
lt=[4,5,6]
lss=ls[1:]+lt[:-1]
lss.insert(3,2)
print(lss)
A、[2, 3, 2, 4, 5]
• B、[1, 2, 3, 2, 4, 5]
• C、[2, 3, 4, 2, 5]
• D、[2, 3, 5, 2, 6]
我的答案:C
6以下程序的输出结果是__________。
d={}
for i in range(26):
d[chr(i+ord(“a”))]=chr((i+13)%26+ord(“a”))
for c in “Python”:
print(d.get(c,c),end=””)(
• A、Python
• B、Cabugl
• C、Pabugl
• D、Plguba
我的答案:D
7以下关于数据组织的描述中,错误的是_________。
• A、二维数据采用二维表的方式组织,可以用Python列表类型表示
B、一维数据采用线性方式组织,可以用Python集合或列表类型表示
C、更高维数据组织由键值对类型的数据构成,可以用Python字典类型表示
D、字典类型仅用于表示一维和二维数据
我的答案:D
8以下程序的输出结果是__________。
for s in “HelloWorld”:

if s=="W":
    continue
print(s,end="")(

A、Hello
• B、World
• C、Helloorld
• D、HelloWorld
我的答案:C
9以下程序的输出结果是__________。
def loc_glo( b = 3, a = 6):
global z
z+=a*2+4b
return z
z = 10
print(z,loc_glo (6,3))
• A、10 43
• B、43 43
• C、10 58
• D、58 58
我的答案:A
10以下代码执行后,book.txt文件的内容是_________。
fo=open(“book.txt”,”w”)
ls=[“book”,”23”,”20100”,”20”]
fo.write(str(ls))
fo.close()(5.0分)
• A、[book, 23, 20100, 20]
• B、[‘book’, ‘23’, ‘20100’, ‘20’]
• C、book,23,20100,20
• D、book232010020
我的答案:B
二.填空题(共4题,50.0分)
1
下面代码的功能是使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个
边长为150像素的正八边形。请在横线处填上恰当的代码将程序补充完整。

import turtle
turtle.pensize(2)
d=0
for i in range(1,):
__________
d+=

turtle.seth(d)
第一空: 9
第二空: turtle.fd(150)
第三空: 45
2
下面代码的功能是查找一组单词中的长度最长的单词,
如果给定的一组单词是:’cad’,’VB’,’Python’,’MATLAB’,’hello’,’world’
则输出的结果为:
the longest words are:
Python
MATLAB
请在横线处填上恰当的代码将程序补充完整。
def proc(strings):
m=0
lst=[]
for i in range(len(strings)):
if len(strings[i])>m:
m = len(strings[i])
for i in range(len(strings)):
if len(strings[i])__________m:
lst.append(strings[i])
return __________

strings=[‘cad’,’VB’,’Python’,’MATLAB’,’hello’,’world’]
result=__________
print(“the longest words are:”)
for item in result:
print(“{: >25}”.format(item))
第一空: ==
第二空: lst
第三空: proc(strings)
3
下面代码的功能是键盘输入一段中文文本(不含标点符号和空格),采用jieba库对其进行分词,输出该文本中词语的平均长度,保留1位小数。
例如:
键盘输入:吃葡萄不吐葡萄皮
屏幕输出:1.6
请在横线处填上恰当的代码将程序补充完整。


txt=input(“请输入一段中文文本:”)


print(“{}”.format(len(txt)/len(ls)))
第一空: import jieba
第二空: ls=jieba.lcut(txt)
第三空: :.1f
4
下面代码的功能是将用户输入的电话号码替换为中文字符。
例如:
键盘输入:13910687890
屏幕输出:一三九一〇六八七八九〇
请在横线处填上恰当的代码将程序补充完整。
n=input(“请输入电话号码:”)
s=”〇一二三四五六七八九”
for c in “0123456789”:
n=

print(n)
第一空: n.replace(c,s[int(c)])

python期末复习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
#变量开头不能为数字

##print(3/1)#3.0

##16)表达式 min({3:7,10:5,1:6})的结果是( B) 。
##A、6
##B、1
##C、5
##D、{1:6}
#字典中使用min函数比大小,比的是键

##17)以下语句执行结果是( C) 。
##s = 'HelloWorld'
##print(s[5::-2])
##A、drW
##B、olH
##C、Wle
##D、loo

#起点,终点,步频,“”不包括在内

##3.替换方法str.replace(old,new[,count])#可以不要count
##s = "I have a dream"
##print(s.replace(" ",","))#I,have,a,dream
##print(s.replace(" ",",",2))#I,have,a dream

##4.lstrip(),rstrip(),strip(),分别去除字符串左边,右边
##左右两边的空格或指定符号
##s=" python "
##print(s)
##print(s.strip())

##import string
##s="a"
##print(s in string.printable)

##random.random() 返回[0,1)之间的随机浮点数N
##import random
##print(random.random())

##22)以下代码的输出结果是(D)。
##ls = "ab"
##print("{{}}{:+^4}".format(ls))
##A、+ab+{}
##B、{{}}+ab+
##C、+ab+{}
##D、{}+ab+
#注意:'{{'表示{
# '}}'表示}
##print("{{{:+^4}}}".format(ls))
#{+ab+}
##print("{{:+^4}}".format(ls))#{:+^4}
#print("{}{:+^4}".format("ab"))#{}+ab+

##x=50
##print("函数外部打印 x 的值:",x)
##def func(n):
## global x
## x+=n
## print("函数内部打印 x 的值:",x)
##func(20)
##函数外部打印 x 的值: 50
##函数内部打印 x 的值: 70

##def func(n):
## global x
## x+=n
## print("函数内部打印 x 的值:",x)
##
##x=50
##func(20)
##print("函数外部打印 x 的值:",x)
##函数内部打印 x 的值: 70
##函数外部打印 x 的值: 70

##def func(n):
## x=10
## x+=n
## print("函数内部打印 x 的值:",x)
##
##x=50
##func(20)
##print("函数外部打印 x 的值:",x)
##函数内部打印 x 的值: 30
##函数外部打印 x 的值: 50

##def jesus():
## print("you are the best")
##a=jesus()
##print(a)
##you are the best
##None

##25)关于 Python 函数的描述错误的是(A) 。
##A、函数内部使用的全局变量必须用 global 声明
##B、Python 支持可选参数传递,但没有默认值的参数必须定义在有默认值参数的左侧
##C、Python 函数可以没有 return 语句,此时返回值为 None
##D、Python 函数支持用名称传递参数

#仅调用全局变量的时候不需要声明,如若要对其进行修改,则需要声明global

##26)以下程序的输出结果是(D)。
##def func(x =[], y =[6,7]):
## x.append(8)
## y.append(8)
## return(x+y)
##a, b = [1,2], [3,4]
##t=func(x=a)
##t=func(y=b)
##print(func() ,end=";")
##A、[8,8,6,7,8,8]
##B、[8,6,7,8,8];
##C、[8,6,7,8,8]
##D、[8,8,6,7,8,8];
##第一次调用 [1,2,8]#[6,7,8](y的新默认值)
## [1,2,8,6,7,8]
##第二次调用 #[8](x的新默认值)[3,4,8]
## [8,3,4,8]
##第三次调用 [8][6,7,8]
## [8,8,6,7,8,8]
##第一次调用时改了形参y的默认值列表,默认值变成[6,7,8]
##第二次调用时改了形参x的默认值列表,默认值变成[8]
##默认值列表被改变了,关键点就在这里
##后两次调用没有传递实参,都用的改变了的默认参数值

##斐波那契数列
#非递归
#方法一:多变量迭代
##def Fib(n):
## f0=1
## f1=1
## for i in range(2,n+1):
## f2=f1+f0
## f0=f1
## f1=f2
## return f2
##a=eval(input("请输入数字:"))
##print(Fib(a))

#方法二:利用列表
##def Fib(n):
## Fiblist=[1,1]
## for i in range(2,n+1):
## Fiblist+=[Fiblist[-1]+Fiblist[-2]]
## return Fiblist[n]
##a=eval(input("请输入数字:"))
##print(Fib(a))

#递归
##def Fib(n):
## if n==0 or n==1:
## return 1
## else:
## return Fib(n-1)+Fib(n-2)
##a=eval(input("请输入数字:"))
##print(Fib(a))

##ls = ["ab","44","cd","46"]
##ls.reverse()

##print(ls)
##print("".join(ls))
##'sep'.join(seq)
##以sep作为分隔符,将seq所有的元素合并成一个新的字符串

##ss =[2,3,6,9,7,1]
##for i in ss:
## ss.remove(min(ss))
## print(min(ss),end = ",")

##[2,3,6,9,7]2(0)
##[3,6,9,7]3(1)
##[6,9,7]6(2)

##dd = {'a':90,'b':87,'c':93}
##print([[dd[x], x] for x in sorted(dd)])
##dd = {'chinese':200,'pe':187,'Gana':930}
##print(sorted(dd.keys()))#['Gana', 'chinese', 'pe']
##输出为列表

##可选参数,是指给方法的特定参数指定默认值,在调用方法时可以省略掉这些参数
##(1)可选参数不能为参数列表的第1个参数,必须位于所有的必选参数之后
##(除非没有必选参数);
##(2)可选参数必须指定一个默认值,且默认值必须是一个常量表达式,不能为变量;
##(3)所有可选参数以后的参数都必须是可选参数。

##print(ord("a"))
##print(int(-3.5))

#n的阶乘
##n=int(input("n="))
##fact=1
##for i in range(2,n+1):
## fact*=i
##print(n,"!=",fact)

#s的逆序
##s=input("s=")
##t=""
##for i in s:
## t=i+t
##print(t)

#最大公约数
##n=int(input("n:"))
##m=int(input("m:"))
##r=n%m
##while r!=0:
## n=m
## m=r
## r=n%m
##print(m)

#找出三位数中每一位数字都是素数的数
##for i in range(100,1000):
## st=str(i)
## flag=True
## for j in st:
## if int(j)<2:
## flag=False
## break
## else:
## for k in range(2,int(j)):
## if int(j)%k==0:
## flag=False
## break
## if flag==False:
## break
## if flag==True:
## print(i)

##img1 = [12,34,56,78]
##print(id(img1))#2222227057536
##img2 = [1,2,3,4,5]
##print(id(img2))#2222258359936
##def modi():
## img1 =img2
## print(id(img1))#2222258359936
## print(img1)
##modi()
##print(id(img1))#2222227057536
##print(img1)
#区别形参实参传递时的列表

##print(ord("b"))#98

#判断完数(该数字恰好等于它的因子之和)
##def ws(n):
## sum=0
## for i in range(1,n):
## if n%i==0:
## sum+=i
## if sum==n:
## return True
##a=eval(input("n="))
##if ws(a):
## print("是")
##else:
## print("不是")

#最小公倍数
##def lcd(m,n):
## r=m%n
## a=m*n
## while r!=0:
## m=n
## n=r
## r==m%n
## return a//n
##m=eval(input("m="))
##n=eval(input("n="))
##print("是",a//n)

#判断回文数
##def judge(n):
## s=str(n)
## t=""
## for i in s:
## t=i+t
## if t==s:
## return True
## else:
## return False
##a=eval(input("n="))
##if judge(a):
## print("是")
##else:
## print("不是")

#判断降序数
##def jx(n):
## s=str(n)
## for i in range(len(s)-1):
## if s[i]<=s[i+1]:
## return False
## return True
##a=eval(input("n="))
##if jx(a):
## print("√")
##else:
## print("×")

#随机生成5个[1,50]之间的随机整数
##import random
##for i in range(5):
## print(random.randint(1,50))

#类凯撒密码
##s=eval(input("请输入:"))
##t=[]
##for i in range(65,91):
## t.append(chr(i))
##print("输出对应大写字母:{}".format(t[s-1]))

#数字的进制转化
##n=eval(input("请输入:"))
##print("对应的二进制数:{0:b}\n八进制数:{0:o}\n十六进制数:{0:X}".format(n))

#阶乘和
##import random
##def fact(n):
## if n==0 or n==1:
## return 1
## s=1
## for i in range(1,n+1):
## s*=i
## return s
##lis=[]
##cnt=0
##while cnt<10:
## x=random.randint(100,999)
## lis+=[x]
## cnt+=1
##for i in lis:
## sum1=0
## st=""
## t=str(i)
## for j in t:
## sum1+=fact(int(j))
## st+=j+"!+"
## print(i,":",st[:-1],"=",sum1)

#升序数
##import random
##def ascnum(n):
## st=str(n)
## for i in range(len(st)-1):
## if st[i]>=st[i+1]:
## return False
## return True
##
##lis=[]
##cnt=0
##while cnt<20:
## x=random.randint(100,999)
## if x not in lis:
## lis+=[x]
## cnt+=1
##print(lis)
##cnt=0
##for n in lis:
## if ascnum(n):
## cnt+=1
## print(n,end="")
##if cnt==0:
## print("无升序数")

#仅由1,2,3组成的1,2,3位素数
##def prime(n):
## if n<2:
## return False
## for i in range(2,n):
## if n%i==0:
## return False
## return True
##
##s="123"
##for i in range(1,334):
## flag=True
## n=str(i)
## for j in n:
## if j not in s:
## flag=False
## break
## if flag==True:
## if prime(i):
## print(i)

##import jieba
##txt=input("请输入:")
##ls=jieba.lcut(txt)
##for i in ls[::-1]:
## print(i,end="")

##import string
##fi=open("小女孩.txt","r")
##fo=open("词频统计.txt","w")
##txt=fi.read()
##fi.close()
##d={}
##exclude=string.punctuation+string.whitespace
##for word in txt:
## if word not in exclude:
## d[word]=d.get(word,0)+1
## ls=list(d.items())
## ls.sort(key=lambda item:item[1],reverse=True)
## for i in range(len(ls)):
## ls[i]="{}:{}".format(ls[i][0],ls[i][1])
## fo.write(",".join(ls))
##fo.close()

##fi=open("vacation.csv","r")
##ls=[]
##for line in fi:
## ls.append(line.strip("\n").split(","))
##fi.close()
##s=input("请输入节假日序号:")
##while s!="":
## slist=[s,split]
## for i in slist:
## flag=False
## for line in ls:
## if flag=True:
## print("{}")

#三国演义分词
##import jieba
##f=open("data.txt","r")
##lins=f.readlines()
##f.close()
##f=open("out.txt","w")
##wordlist=[]
##for line in lines:
## line=line.strip()
## wordlist+=jieba.lcut(line)
##f.write("\n".join(wordlist))

##f=open("name.txt")
##names=f.readlines()
##f.close()
##f=open("vote.txt")
##votes=f.readlines()
##print(votes)
##f.close()
##f=open("vote1.txt","w")
##d={}
##NUM=0
##for vote in votes:
## print(vote)
## num=len(vote.split())
## if num==1 and vote in names:
## d[vote[:-1]]=d.get(d[vote[:-1]],0)+1
## NUM+=1
## else:
## f.write(vote)
##f.close()
##ls=list(d.items())
##ls.sort(key=lambda s:s[1],reverse=True)
##name=ls[0][0]
##score=ls[0][1]
##print("有效选票{}当选村长的村民{}票数{}".format(NUM,name,score))

##2
##[1,1,2]
##3
##[1,1,2,3]
##4
##[1,1,2,3,5]

##print (2>2>5)
##abcdefghijklmnopqrstuvwxyz

##def proc(strings):
## m=0
## lst=[]
## for i in range(len(strings)):
## if len(strings[i])>m:
## m=len(strings[i])
## for i in range(len(strings)):
## if len(strings[i])==m:
## lst.append(strings[i])
## return lst
##strings=["cad","VB","Python","MATLAB","hello","world"]
##result=proc(strings)
##print("the longest words are:")
##for item in result:
## print("{:>25}".format(item))

##import jieba
##txt=input("请输入一段中文文本:")
##ls=jieba.lcut(txt)
##print(ls)
##print("{:.1f}".format(len(txt)/len(ls)))

##n=input("请输入电话号码:")
##s="〇一二三四五六七八九"
##for c in "0123456789":
## n=n.replace(c,s[int(c)])
##print(n)

##str.replace(old,new[,max])

python基本函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
####一、基本数字类型及运算符
####三类数字类型:
####1.整数型 int
##a=123
##print(a,type(a))
####2. 浮点数型 float:两种表示方法:十进制和科学计数法
##a=2.0
##print(a,type(a))
##b=3.145E-9
##print(b,type(b))
####3. 复数型 complex
##a=2+3j
##print(a,type(a))
#### 布尔型 bool:True 和 False
##print(2+True)
##print(2+False)
##a=True
##print(a,type(a))
##print(int(True))
##print(int(False))
##print(bool(-2.3))
##print(bool(0))
####数字运算
####1.算术运算符(+,-,*,/,//,%,**)
####x/y 浮点除,结果为浮点数
####x//y 地板除,结果为整数
##print(5/-2)
##print(5//-2.0)
####算术运算符的优先级 **→(+ -)→* / // % → + -
##print(30//7*4+15%-2**4)
##print(30//7*4+15%(-2)**4)
##赋值运算符
##x=2.0
##print(x)
##x=1
##print(x)
##x=x+1
####print(x)
####x+=1
##print(x)
##x*=3+5**2
##print(x)
##a,b=1,2
##print(a,b)
##a,b=b,a
##print(a,b)
####2. 比较运算符(>,>=,<,<=,!=,==)
##print(3==5)
##print('asd'>='asde')
####3. 逻辑运算符(and,or,not)
##print(10 and True)
##print(10 or True)
##print(10 and 12)
##print(10 or 12)
####4.位运算符(&,|,^,~,<<,>>)
####常用函数
##print(int(3.8))
##print(float(33))
##n=input('n:')
##print(eval(n)+4)
##print(abs(-8.9))
##a,b=divmod(17,5)
##print(a)
##print(b)
##n=divmod(17,5)
##print(n)
##print(pow(9,0.5))
##print(round(3124.135,-2))
##print(bin(15))
##print(oct(15))
##print(hex(15))
####标准库
####math: 数 学 函 数 (floor 取 整 largest integer<=x,ceil 取 整 smallest
integer>=x,sqrt,pi,sin,e,log...)
####random:随机数生成器(randint,uniform,random)
##import math
##print(math.floor(-3.6))
##print(math.floor(3.6))
##print(math.ceil(-3.6))
##print(math.ceil(3.6))
##print(math.pi)
##print(math.sin(math.pi/2))
##print(math.e)
##print(math.log(math.e))
##print(math.sqrt(4))
##from random import *
##print(randint(10,20))
##print(random())
##print(uniform(10,20))
####二 、序列(列表、字符串、元组)
##序列的通用操作(连接+、重复*、成员判断 in、切片[][:][::])
##(一)、列表
##1、创建列表
##a=[1,2,3]
##b=list('abcd')
##print(a)
##print(b)
##2、添加列表元素
##list1 = [5, 1, 8]
##list1.append(10)
##print(list1)
##若在指定位置插入元素用 intert()方法:
##intert(插入位置,插入元素)
##list1.insert(2,6)
##print(list1)
##3、获取列表元素
##可以通过切片方式获取,只需要给定元素的位置(索引)
##list2=['a','b','c','d']
##print(list2[1])
##使用 for 循环输出列表元素
##lis=[1,2,3,4,5,6]
##for i in lis:
## print(i,end=" ")
##4、删除列表元素
##remove()方法、pop()方法和 del
##lis=[3,1,2,3,4,5,6]
##lis.remove(3)
##print(lis)
##remove 方法只需要知道要删除的元素在列表中,不需要知道元素的位置。
##若删除的元素不在列表中,则报错。如果多个重复值存在,remove 方法只删除第一个指
定的值,
##pop()方法删除列表末尾的元素,如果使用参数指定位置,则可以删除任意位置上的元素。
##lis=[1,2,3,4,5,6]
##lis.pop()
##print(lis)
##lis.pop(1)
##print(lis)
##del 加上列表名,可以删除整个列表
##del lis
##del 加上列表名[索引]可以删除任意位置的元素
##lis=[1,2,3,4,5,6]
##del lis[3]
##print(lis)
##5、列表的其它常用方法
##(1)count()
##返回元素出现的次数
##lis=[1,2,3,2,4,5,2,6,3]
##print(lis.count(2))
##(2)extend()
##在列表末尾一次性追加另一个序列的所有元素
##lis1=[1,2,3,4,5,6]
##lis2=[4,8,9,15]
##lis1.extend(lis2)
##print(lis1)
##(3)index
##index(x)方法返回列表中出现的 x 元素的索引序号、若不存在该元索则报错。
##lis=[1,2,1,2,5,4,8,2]
##print(lis.index(2))
##print(lis.index(2,4))
##print(lis.index(3))
##(4)reverse()
##反转列表元素的排列顺序
##num=[1,2,3,4,5]
##num.reverse()
##print(num)
##(5)sort()、sorted()
##sort()方法永久性地修改了列表元素的排列顺序,默认为升序。
##num=[7,2,1,4,6,3]
##num.sort()
##print(num)
##sorted()函数是返回排序后的列表副本,即列表本身的排序没有发生变化
##num=[2,4,1,3,5]
##print(sorted(num,reverse=True))
##print(num)
##(6)clear()
##clear()方法用于清空列表
##num=['python','study','is']
##print(num)
##num.clear()
##print(num)
##(7)max()、min()、sum()
##num=[7,2,1,4,6,3]
##print(max(num))
##print(min(num))
##print(sum(num))
##(8)len()
##num=[7,2,1,4,6,3]
##print(len(num))
##6.列表切片
## list1=[0 ,1, 2, 3, 4, 5, 6, 7, 8]
## 索引 0 1 2 3 4 5 6 7 8 --> +
## -9 -8 -7 -6 -5 -4 -3 -2 -1 - <--
##切片共有三个参数,用冒号(:)分割开。第一个参数表示切片开始位置(默认为 0),
##第二个参数表示切片截止位置(但不包含该位置),
##第三个参数表示切片的步长(默认为 1)。步长省略时,可以省略最后一个冒号。
##lis=[4,5,6,8,7,9,1,2,4,5,8]
##print(lis[2])
##print(lis[2:5])
##print(lis[:-1])
##print(lis[5:])
##print(lis[4:9:3])
##print(lis[8:2:-2])
##print(lis[::-1])
##print(lis[-1:2:3])
####列表是可变对象,可以通过赋值语句修改列表
##lis=[4,5,6,8,7,9,1,2,4,5,8]
##lis[2:5]=[4,5,6]
##print(lis)
##lis[2:2]=[11]
##print(lis)
##7、列表的元素检查
##lis=[4,5,6,8,7,9,1,2,4,5,8]
##print(2 in lis)
##print(11 not in lis)
##(二)、字符串
####1、字符串的连接
##print('hello'+' '+'world')
##print('6'+str(5))
##print(eval('6')+5)
####2、字符串的复制
##print('aa'*3)
##3、转义符(\)
##在字符串中用反斜杠(\)转义字符,用于表示特殊字符
##\n 换行
##\' 单引号
##\" 双引号
##\\ \
##string='D:\nothing'
##print(string)
##一些字符串中包含反斜杠(\),但不需要转义字符,此时需要用 r 或 R 加在字符串的前面
##string=r'D:\nothing'
##print(string)
##4、字符串切片
##st="Hello world!"
##print(st[:])
##print(st[:11])
##print(st[6:])
##print(st[6:9])
##print(st[3:11:2])
##print(st[::-1])
##字符串是不可变对象,所以不可以对字符串切片赋值
##st="Hello world!"
##st[2:4]='zx' #出错
##5、字符串相关函数和方法
##(1)len(),长度
##s="Python 程序设计"
##print(len(s))
##(2)ord(),对单个字符转换成对应编码
##print(ord('a'))
##print(ord('南'))
##(3)chr(),可将编码转化成对应的字符
##print(chr(65))
##print(chr(21335))
##(4)title(),以首字母大写的方式显示每一个单词,即每个单词的首字母都改为大写
##s="The world is so big,"
##print(s.title())
##(5)upper()、lower(),upper()将字符串的字符全部转换成大写, lower()转换成小写
##s="The world is so big,"
##print(s.upper())
##print(s.lower())
##(6)lstrip()、rstrip()、strip(),分别去除字符串左边、右边、左右两边的空格或指定符号
##s="@python@@"
##print(s)
##print(s.lstrip('@'))
##print(s.rstrip('@'))
##print(s.strip('@'))
##(三)、元组
##元组与列表相似,不同之处在于元组是不可变对象。
##创建和访问元组
##t='a','b'
##print(t)
##t=(3,4,5,6)
##print(t)
##t=(15,)
##print(t)
##元组访问与列表类似
##tp1=(1,2,3,4,5,6)
##print(tp1[3])
##元组的元素不可删除,但可用 del 删除整个元组
##t=(1,2,3)
##del t[1] ##出错
##del t
##3.元组的常用函数
##(1)len()
##(2)max()
##(3)min()
##(4)tuple(),转换成元组
##num=[7,2,1,4,6,3]
##print(tuple(num))
##四、字典和集合
##字典和集合是无序的
##(一)、字典
##1. 字典的操作
##创建字典
##dict1 = {1: 'one', 2:'two', 3:'three'}
##print(dict1)
##
##dict2 = {}
##print(dict2)
##
##dict3 = dict(['a1','b2','c3'])
##print(dict3)
##通过键访问值。
##dict1 = {1: 'one', 2:'two', 3:'three'}
##print(dict1[1])
##增加新的键值对
##dict1 = {'name': 'Tom', 'age':18, 'gender':'Male'}
##dict1['Address'] = 'B105'
##print(dict1)
##修改键所对应的值
##一个键只能对应一个值
##dict1['name'] = 'Jerry'
##print(dict1)
##删除
##删除某一键值对
##dict1 = {'name': 'Tom', 'age':18, 'gender':'Male'}
##del dict1['name']
##print(dict1)
##用 clear 方法删除所有键值对
##dict1.clear()
##print(dict1)
##删除字典对象
##del dict1
##2、字典的操作符 in|not in
##dict1 = {'name': 'Tom', 'age':18, 'gender':'Male'}
##print('age' in dict1)
##print('Tom' not in dict1)
##3、常用方法和函数
##keys()方法获得字典所有的键
##dict1 = {1: 'one', 2:'two', 3:'three'}
##print(dict1.keys())
##print(list(dict1.keys()) )
##values()方法获得字典所有的值
##print(dict1.values())
##print(list(dict1.values()))
##items()方法获得字典所有的键值对
##print(dict1.items())
##print(list(dict1.items()))
##len 函数返回字典的键值对的个数
##print(len(dict1))
##4、字典是可变类型,值可变,键不可变。
##dict1 = {1: 'one', 2:'two', 3:'three'}
##dict1[1]='ONE'
##print(dict1)
##dict1[(0,0)] = 'red'
##print(dict1)
##列表是可变数据类型,不能做字典的键
##dict1[[1,1]] = 'black' #出错
##(二)、集合 set
##1、集合的创建
##集合的元素必须为不可变数据类型,即元素不能为列表、字典或集合 set
##s1={1,2,3,4,5,6}
##print(s1)
##print(type(s1))
##可作为一种去重方式。
##s2 = set([1,2,3,4,5,6,1,2])
##print(s2)
##{}表示空字典,set()表示空集合
##s3=set()
##print(s3)
##print(type({}))
##2、集合常用运算:
##s1 = set('cheeseshop')
##s2 = set('fishshop')
##print(s1)
##print(s2)
##并(|)
##print(s1|s2 )
#交(&)
##print(s1&s2)
#差(-)
##print(s1-s2)
##print(s2-s1)
##四、控制结构
####(一)、选择结构分为三种:单分支、双分支及多分支结构。
####1. 单分支结构:if
####if <条件表达式>:
#### <语句组>
####例:输出两个数中较小的一个数
##a = eval(input('请输入第一个数:'))
##b = eval(input('请输入第二个数:'))
##if a > b:
## a = b
##print(a)
####2. 双分支结构:if - else
####if <条件表达式>:
#### <语句组 A>
####else:
#### <语句组 B>
####例:判断输入的一个整数是奇数还是偶数
##a = int(input('请输入一个数:'))
##if a%2 == 0:
## print("偶数")
##else:
## print("奇数")
####3. 多分支结构:if - elif - else
####if <条件表达式 1>:
#### <语句组 1>
####elif <条件表达式 2>:
#### <语句组 2>
####……
####elif <条件表达式 n>:
#### <语句组 n>
####else:
#### <语句组 x>
####例:输出输入的三个数中较小的一个数
##a = eval(input('请输入第一个数:'))
##b = eval(input('请输入第二个数:'))
##c = eval(input('请输入第三个数:'))
##if a > b:
## if b > c:
## print(c)
## else:
## print(b)
##elif a > c:
## print(c)
##else:
## print(a)
####4. 条件表达式
####<True 部分> if <条件表达式> else <False 部分>
####例:输出两个数中较小的一个数
##a = eval(input('请输入第一个数:'))
##b = eval(input('请输入第二个数:'))
##small = a if a < b else b
##print(small)
####(二)、控制结构之循环结构
####1.for 循环结构
####for <循环变量> in <循环结构>:
#### <循环体>
####else:
#### <语句组>
####例:在给定范围内查找第一个能被 7 整除的整数,查无此数则返回"该范围内找不到符
合要求的数"
##startnum=int(input("请输入查找数据的起始值:"))
##endnum=int(input("请输入查找数据的终止值:"))
##for i in range(startnum, endnum+1):
## if i%7==0:
## print("找到数值{}符合要求".format(i))
## break
##else:
## print("该范围内找不到符合要求的数")
####2.while 循环结构
####while <条件表达式>:
#### <循环体>
####else:
#### <语句组>
####如上例也可写作:
##startnum=int(input("请输入查找数据的起始值:"))
##endnum=int(input("请输入查找数据的终止值:"))
##i=startnum
##while i<=endnum:
## if i%7==0:
## print("找到数值{}符合要求".format(i))
## break
## else:
## i+=1
##else:
## print("该范围内找不到符合要求的数")
####3.break 与 continue 循环控制语句
####(1)break 语句——跳出循环
##for i in range(1,10):
## if i%2==0:
## break
## print(i)
####(2)continue——跳过本轮循环
##for i in range(1,10):
## if i%2==0:
## continue
## print(i,end=' ')
####4.典型算法
####请同学们对上学期所授的素数、因子(因子个数)、升(降)序数、逆序数、最大公约
数(互质、最小公倍数)、armstrong 数、斐波那契数列、阶乘(阶乘和)等算法进行编写整
理,整理时可适当增加难度
####例:整理阶乘,可编写找出给定数的各位数字的阶乘和,并以给定格式进行输出,
####如用户输入 123,则打印出 1!+2!+3!=9

python 题库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
##一、选择题
##11)可以部署 Python 环境、运行 Python 脚本的系统是(A)。
##A、各操作系统平台
##B、Linux
##C、Mac Os
##D、Windows
##12)Python 的运算符中**的作用是(D)。
##A、非法符号
##B、乘法运算
##C、操作数取平方
##D、幂运算
##13)以下选项不是 Python 合法变量名的是(C) 。
##A、_maxNum
##B、Eval
##C、2nd_table
##D、VAL
##14)表达式 str(10/2)的结果是(B ) 。
##A、ValueError
##B、"5.0"
##C、'5'
##D、'10/2'
##15)以下语句的执行结果是( A) 。
##ls =[x**2 for x in range(5)]
##print(ls)
##A、[0,1,4,9,16]
##B、[2,4,6,8,10]
##C、[0,2,4,6,8]
##D、[1,4,9,16,25]
##16)表达式 min({3:7,10:5,1:6})的结果是( B) 。
##A、6
##B、1
##C、5
##D、{1:6}
##17)以下语句执行结果是( C) 。
##s = 'HelloWorld'
##print(s[5::-2])
##A、drW
##B、olH
##C、Wle
##D、loo
##18)以下语句执行结果是(D)。
##s ='北京,上海,广州,深圳,'
##print(s.strip(',').replace(',',';'))
##A、北京;上海;广州;深圳;
##B、北京上海 广州 深圳
##C、北京;上海;广州;深圳,
##D、北京;上海;广州;深圳
##19)以下程序的输出结果是(B)。
##import string
##y1 = 'a'
##y2 = 'asdf'
##print(y1 in string.printable,y2 in string.printable)
##A、False True
##B、True False
##C、False False
##D、True True
##20)以下关于控制结构的描述,错误的是(A) 。
##A、break 也可用于跳出 try-except 控制块
##B、break 的功能是跳出当前循环控制块
##C、在 for 结构中使用 continue,会开始遍历下一个元素
##D、Python 的多分支结构里,可以包含多个 elif 语句
##21)以下关于随机运算函数库的描述,正确的是(C)。
##A、Python 的 random 库通过 pip 进行安装库
##B、使用 random.random()生成随机数前,必须先用 random.seed()函数初始化随机数种子
##C、random.randint(a,b)产生一个[a,b]之间的随机整数
##D、random.random(a,b)产生一个[a,b)之间的随机小数
##22)以下代码的输出结果是(D)。
##ls = "ab"
##print("{{}}{:+^4}".format(ls))
##A、+ab+{}
##B、{{}}+ab+
##C、+ab+{}
##D、{}+ab+
#注意:'{{'表示{

# '}}'表示}

##print("{{{:+^4}}}".format(ls))
##23)执行以下程序,输 3.2,然后回车,结果是(C )。
##flag = 0
##try:

## b = eval(input("请输入计算次数:"))

## print(type(b))

##except:

## flag = 1

## print("请输入整数")

##print(flag)
##A、请输入整数 1
##B、<class "int" >0
##C、<class "float">0
##D、<class "float ">1
##24)以下程序的执行结果是(A)。
##a =[12,34,56]
##b =[1,2,3,4]
##def displ(a):

## print('res:', [a])

##b = a
##a.append([5,6])
##displ(b)
##A、res: [[12,34,56,[5,6]]]
##B、res: [12,34,56,[5,6]]
##C、res: [[1,2,3,4,[5,6]]]
##D、res: [12,34,56,5,6]
##25)关于 Python 函数的描述错误的是(A) 。
##A、函数内部使用的全局变量必须用 global 声明
##B、Python 支持可选参数传递,但没有默认值的参数必须定义在有默认值参数的左侧
##C、Python 函数可以没有 return 语句,此时返回值为 None
##D、Python 函数支持用名称传递参数
##26)以下程序的输出结果是(D)。
##def func(x =[], y =[6,7]):

## x.append(8)

## y.append(8)

## return(x+y)

##a, b = [1,2], [3,4]
##t=func(x=a)
##t=func(y=b)
##print(func() ,end=";")
##A、[8,8,6,7,8,8]
##B、[8,6,7,8,8];
##C、[8,6,7,8,8]
##D、[8,8,6,7,8,8];
##27)以下程序的输出结果是(D)。
##def mysort(ss,flag):

## if flag:

## return(sorted(ss,reverse = True))

## else:

## return(sorted(ss,reverse = False))

##ss=[1,2,4,3]
##print(mysort(ss, -1))
##A、[1,2,4,3]
##B、[3,4,2,1]
##C、[1,2,3,4]
##D、[4,3,2,1]
##28)执行以下程序后,要输出 46cd44ab 结果,该执行的选项是(B )。
##ls = ["ab","44","cd","46"]
##ls.reverse()
##A、print("".join(ls[-1::-1]))
##B、print("".join(ls))
##C、print("".join(ls[1:]))
##D、print("".join(ls[-1::]))
##29)以下程序的输出结果是(C) 。
##ss =[2,3,6,9,7,1]
##for i in ss:

## ss.remove(min(ss))

## print(min(ss),end = ",")

##A、1,2,3,6,7,9,
##B、9,7,6,3,2,1,
##C、2,3,6,
##D、1,2,3,6,7,9

##30)以下程序的输出结果是(B)。
##dd = {'a':90,'b':87,'c':93}
##print([[dd[x], x] for x in sorted(dd)])
##A、[[93, 'c],[90, 'a'],[87,'b']]
##B、[[90, 'a'], [87, 'b'],[93, 'c']]
##C、[[87, 'b'],[90, 'a'],[93, 'c']]
##D、[[90, a], [87,b],[93,c]]
##31)以下语句的输出结果是(C) 。
##dd = {'chinese':200,'pe':187,'Gana':930}
##print(sorted(dd.keys()))

##A、dict_keys(['Gana' , 'chinese', 'pe'])
##B、'Gana', 'chinese', 'pe'
##C、['Gana', 'chinese', 'pe']
##D、报错
##32)以下程序的输出结果不可能的选项是(A)。
##import random
##ls =["a","b","c","d"]
##print(ls[int(random.random()*3)])
##A、"d"
##B、"a"
##C、"b"
##D、"a", "b","c"都有可能
##33)以下关于文件的描述,错误的是(A) 。
##A、open()函数的打开模式’t’表示以二进制打开文件
##B、打开文件时,编码方式是可选参数
##C、fo.seek()函数是设置当前文件操作指针的位置
##D、open 函数的打开模式’ a’表示可以对文件进行追加操作
##34 执行以下程序后,文件 a.txt 中的内容是( D) 。
##fo = open("a.txt",'w')
##x =['大学','中学','小学']
##fo.write('\n'.join(x))
##fo.close()
##A、大学\n 中学\n 小学
##B、大学中学小学
##C、'大学',‘\n’,'中学',‘Nn’,小学
##D、大学

## 中学

## 小学

##35)以下方法不是 python 文件操作的选项是(B)。
##A、seek()
##B、socket()
##C、close()
##D、readlines()
##36)以下关于数据组织的维度,以下选项中描述错误的是(C).
##A、JSON 格式能够表达一维数据
##B、字典类型可以表示具有复杂关系的高维数据
##C、列表只能表示一维数据
##D、CSV 文件可以用来存储二维数据
##37)turtle 库的控制顺时针转的函数是(C) 。
##A、penup()
##B、set()
##c、right()
##D、pencolor()
##38)关于 Pyinstaller 工具,下列说法正确的是(A )。
##A、只能处理 UTF-8 编码形式的 Python 源文件
##B、生成单独的可执行文件时,图片等文件资源不能一并打包到可执行文件中
##C、不能为生成的可执行文件指定图标
##D、不能生成带有动态链接库的可执行文件
##注:Pyinstaller 是 python 的一个第三方库。可将 python 源文件(即.py 文件)打包,变
成直接可运行的可执行文件。

## 执行:在 cmd 窗口,程序(如 Verify.py)所在的路径下,pyinstaller -F Verify.py 即可

##39)Python 机器学习方向的第三方库是(B )。
##A、openpyxl
##B、tensorflowo
##C、Flask
##D、PIL
##40 )Python 网络爬虫开发方向的第三方库是(C)。
##A、Django
##B、Theano
##C、scrapy
##D、Tkinter
##二、基本操作题(15 分)
##41)在考生文件夹下有个文件 PY101.py,在横线处填写代码,完成如下功能。
##接收用户输入的一个浮点数,输出这个浮点数的小数部分各字符的和,
##以 10 为宽度,靠右显示,采用星号*填充。例如:
##输入:1234.5678
##输出:
##********26
##s = input("请输入一个小数: ")
##s = s[::-1]
##____________
##for c in s:

## if c == '.':

## ____________

## cs += eval(c)

##print('{____________}'.format(cs))
##{<参数序号>:<格式控制标记>}
##格式控制标记包括:<填充><对齐><宽度><,><.精度><类型>等六个字段,都是可选
项。
##s = input("请输入一个小数: ")
##s = s[::-1]
##cs=0
##for c in s:

## if c == '.':

## break

## cs += eval(c)

##print('{:*>10}'.format(cs))
##42)在考生文件夹下有个文件 PY102.py,在横线处填写代码,完成如下功能。
##time 库是 Python 语言中与时间处理相关的标准库,time 库中 ctime()函数能够将
##一个表示时间的浮点数变成人类可以理解
##的时间格式,示例如下:
##import time
##print(time.ctime(1519181231.0))
##输出结果是:Web Feb 21 10:47:11 2018
##请获得用户输入时间,提取并输出其中的小时信息。以上述时间为例,应输出 10。
##import time
##t = input("请输入一个浮点数时间信息: ")
##s = time.ctime(____________)
##ls = s.split()
##print(____________)
##import time
##t = input("请输入一个浮点数时间信息: ")
##s = time.ctime(eval(t))
##ls = s.split()
##print(ls[3].split(':')[0])

##43)在考生文件夹下有个文件 PY103.py,在横线处填写代码,完成如下功能。
####以 26 个小写字母和 0-9 数字为基础,以用户输入的数字为种子,随机生成
####10 个 8 位密码,并将每个密码在单独一行打印输出。例如:
####输入:
####125
####输出:
####potlwjta
####ej460gqs
####k5l5jdr8
####1blked1f
####y37c4mhx
####1oa18pv5
####pz6r37t7
####xegd1ql3
####l2w0ksh6
####pxuybhp9
##import random
##
##s = input("请输入随机种子: ")
##ls = []
##for i in range(26):

## ls.append(chr(ord('a')+i))

##for i in range(10):

## ls.append(chr(____________))

##
##random.seed(____________)
##for i in range(10):

## for j in range(8):

## print(____________,end='')

## print()

##import random
##
##s = input("请输入随机种子: ")
##ls = []
##for i in range(26):

## ls.append(chr(ord('a')+i))

##for i in range(10):

## ls.append(chr(ord('0')+i))

##
##random.seed(eval(s))
##for i in range(10):

## for j in range(8):

## print(ls[random.randint(0,35)],end='')

## print()

##import random
##random.seed(25)
##for i in range(10):

## print(random.randint(10,1000))

##三、简单应用
##44)在考生文件夹下有个文件 PY201.py,在横线处填写代码,完成如下功能。
####利用 random 库和 turtle 库,在屏幕上绘制 3 个黑色的正方形,正方形
####的左下角点坐标和正方形边长由 randint()函数产生,参数在代码中给出。
####效果如下图所示。
##import turtle as t
##import random as r
##r.seed(1)
##t.pensize(2)
##for i in range(3):

## length = r.____________(20,80)

## x0 = r.randint(-100, 100)

## y0 = r.randint(-100, 100)

##

## t.penup()

## t.goto(____________)

## t.____________

## for j in range(4):

## t.____________(length)

## t.____________(90*(j+1))

##t.done()
##import turtle as t
##import random as r
##r.seed(1)
##t.pensize(2)
##for i in range(3):

## length = r.randint(20,80)

## x0 = r.randint(-100, 100)

## y0 = r.randint(-100, 100)

##

## t.penup()

## t.goto(x0,y0)

## t.pd()

## for j in range(4):

## t.fd(length)

## t.seth(90*(j+1))

##t.done()
##四、综合应用
##45)在考生文件夹下有个文件 PY202.py,在省略号处填写一行或多行代码,完成如下功能。
##同时,在考生文件夹下有个文件 out.txt,其中有一些数据库操作功能的执行时间信息,如
下所示:
##starting 0.000037 2.102
##After opening tables 0.000008 0.455
##System lock 0.000004 0.227
##Table lock 0.000008 0.455
##...
##其中第 1 列是操作的名字,第 2 列是操作所花费的时间,单位是秒,第 3 列是操作时间
占全部过程的百分比,
##字段之间用逗号','隔开。
##修改考生文件夹下的文件 PY202.py,读取 out.tut 文件里的内容,统计所有操作所花费的
时间总和,
##并输出操作时间百分比最多的三个操作所占百分比的值,及其对应的操作名称,
##显示在屏幕上,如下所示:
##the total execute time is 0.0017
##the top 0 percentage time is 46.023,spent in "Filling schema table" operation
##...
##sumtime = 0
##percls = []
##ts = {}
##with open('out.txt', 'r') as f:
##

## ...

##print('the total execute time is ', sumtime)
##tns = list(ts.items())
##tns.sort(key=lambda x: x[1], reverse=True)
##for i in range(3):

## print('the top {} percentage time is {}, spent in "{}" operation'.format(i, tns[i][1],tns[i][0]))

##sumtime = 0
##percls = []
##ts = {}
##with open('out.txt', 'r') as f:

## for line in f:

## linelist=line.strip().split(',')

## ts[linelist[0]]=eval(linelist[2])

## sumtime+=eval(linelist[1])

## sumtime=round(sumtime,4)

##print('the total execute time is ', sumtime)
##
##tns = list(ts.items())
##tns.sort(key=lambda x: x[1], reverse=True)
##for i in range(3):

## print('the top {} percentage time is {}, spent in "{}" operation'.format(i, tns[i][1],tns[i][0]))

##46)词频统计并输出。要求如下:
##(1)对"红楼梦.txt"中文本进行分词,并对人物名称进行归一化处理,仅归一化以下内容:

## 凤姐、凤姐儿、凤丫头归一为凤姐;宝玉、二爷、宝二爷归一为宝玉;黛玉、颦儿、林妹

妹、黛玉道归一为黛玉﹔

## 宝钗、宝丫头归一为宝钗;贾母、老祖宗归一为贾母;袭人、袭人道归一为袭人﹔

## 贾政、贾政道归一为贾政﹔贾琏、琏二爷归一为贾琏。

##(2)不统计“停用词.txt"文件中包含词语的词频。
##(3)提取出场次数不少于 40 次的人物名称,将人物名称及其出场次数按照递减排序,保
存到 result.csv 文件中,
##出场次数相同的,则按照人物名称的字符顺序排序。示例如下:
##宝玉,123
##凤姐,101

## …(略)

##其中,人物名称与出场次数之间采用英文逗号分隔,无空格,每组信息—行。
##import jieba
##f = "红楼梦.txt"
##sf = "停用词.txt"
##......

## items.sort(key=lambda x:x[1], reverse=True)

## 此行语句可以对 items 列表进行递减排序

import jieba
f = "红楼梦.txt"
sf = "停用词.txt"
f1=open(f,encoding="utf-8")
datas=f1.read()
f1.close()
f2=open(sf,encoding="utf-8")
words=f2.read()
f2.close()
data=jieba.lcut(datas)
d={}
word=["一个","如今","一面","众人","说道","只见","不知",
"两个","起来","二人","今日","听见","不敢","不能",
"东西","只得","心中","回来","几个","原来","进来",
"出去","一时","银子","起身","答应","回去"]
for i in data:
if len(i)<2 or i in word or i in words:
continue
if i in ["凤姐","凤姐儿","凤丫头"]:
i="凤姐"
elif i in ["宝玉","二爷","宝二爷"]:
i="宝玉"
elif i in ["黛玉","颦儿","林妹妹","黛玉道"]:
i="黛玉"
elif i in ["宝钗","宝丫头"]:
i="宝钗"
elif i in ["贾母","老祖宗"]:
i="贾母"
elif i in ["袭人","袭人道"]:
i="袭人"
elif i in ["贾政","贾政道"]:
i="贾政"
elif i in ["贾琏","琏二爷"]:
i="贾琏"
d[i]=d.get(i,0)+1
l=list(d.items())
l.sort(key=lambda x:(x[1],x[0]), reverse=True)
f=open("result.csv",'w')
for i in l:
if i[1]<40:
break
f.write(i[0]+','+str(i[1])+'\n')
f.close()

python基本方法

1
2
3
##安装python第三方库
pip install -i https://pypi.tsinghua.edu.cn/simple jieba
pip install -i https://pypi.tsinghua.edu.cn/simple wordcloud
1
2
3
4
5
6
7
8
9
10
11
12
13
14
##wordcloud
wordsall = ' '.join(words)

wc = WordCloud(
font_path = 'msyhbd.ttc',
background_color = 'white',
width = 800,
height = 600,
max_font_size = 100,
min_font_size = 10,
mode = 'RGBA'
)
wc.generate(wordsall)
wc.to_file('dream.png')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
f = open('八十天环游地球.txt',encoding = 'utf-8')
allLines = f.readlines()
f.close()

chaptNos = [] ##[0,70,106,...]
for lineNo in range(len(allLines)):
if allLines[lineNo][0] == '第':
chaptNos.append(lineNo)

chaptCons = []
for i in range(len(chaptNos) - 1):
chaptCons.append(allLines[chaptNos[i]:chaptNos[i + 1]])
chaptCons.append(allLines[chaptNos[-1]:])

##chaptCons内记录了各个章节的行和组成
for chapt in chaptCons:
alltxt = ''
for line in chapt:
alltxt += line
words = jieba.cut(alltxt)
wordDic = {} ##{'路路通':1,...}
for word in words:
if len(word) > 2:
if word not in wordDic:
wordDic[word] = 1
else
wordDic[word] += 1
wordList = []
for key in wordDic:
wordList.append([key,wordDic[key]])
wordList.sort(key = lambda x:x[1])
print(chapt[0].split[0], wordList[-1][0], wordList[-1][1])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
##价格文件的变化
f = open('price.csv')
priceL = []
for line in f:
priceL.append(line.strip().split(','))
f.close()

f = open('priceResult.csv', 'w')
f.write(','.join(priceL[0]) + '\n')
for i in range(1,len(priceL)):
for j in range(1,len(priceL[i])):
priceL[i][j] += '%'
f.write(','.join(priceL[i]) + '\n')
f.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
##选举
import os

fp = '<filepath>'
files = os.listdir(fp)
voteD = {}
for file in files:
abfile = fp + '\\' + file
f = open(abfile)
name = f.read().split()
f.close
if len(name.split()) == 1:
if name not in voteD:
voteD[name] = 1
else:
voteD[name] += 1
voteLst = []
for name in voteD:
voteLst.append((name, voteD[name]))
voteLst.sort(key = lambda x:x[1], reverse = True)
print(voteLst[0][0])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
##生成100个三位整数并保存,再从该文件读取所有的数,记录并存档其中的素数

import random

f = open('data.txt', 'w')
for i in range(100):
n = random.randint(100,999)
f.write(str(n) + ',')
f.close()

def IsPrime(n):
if n >=2:
for i in range(2,n):
if n % i == 0:
return False
return True
else:
return False

f = open('data.txt')
nums = f.read().strip().split(',')
f.close()

f = open('result.txt', 'w')
for num in nums:
if len(num) == 3:
if IsPrime(int(num)):
f.write(num + '|')
f.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
##二维文件处理(CSV)
f = open('data.csv')
for line in f:
datas = line.strip().split(',')
print(datas)
f.close()

import random

f = open('rnd.csv', 'w')
for line in range(100):
n = random.randint(1,100)
f.write(str(n) + ',')
if (i + 1) % 10 == 0:
f.write('\n')
f.close()

f = open('rnd_1.csv', 'w')
rndL = []
for i in range(100):
n= random.randint(1,100)
rndL.append(str(n))
if (i + 1) % 10 == 0:
ws = ','.join(rndL) + '\n'
f.write(ws)
rndL = []
f.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
##新冠数据分析
##1、按年龄段统计病例人数
f = open('covid-19.csv')
lines = f.readlines()
f.close()

ageD = {}
for i in range(1, len(lines)):
datas = lines[i].strip().split(',')
age = datas[6]
if age not in ageD:
ageD[age] = 1
else:
ageD[age] += 1

ageL = []
for age in ageD:
ageL.append((age, ageD[age]))
ageL.sort(key = lambda x:x[1])
maxCnt = ageL[-1][1]
for item in ageL:
if item[1] == maxCnt:
print(item[0])

##2、统计各年龄段病例的死亡率并排序
f = open('covid-19.csv')
lines = f.readlines()
f.close()

ageD = {}
for i in range(1, len(lines)):
datas = lines[i].strip().split(',')
age = datas[6]
death = datas[9]

if age not in ageD:
ageD[age] = [1,0]
else:
ageD[age][0] += 1

if death == 'Yes':
ageD[age][1] += 1

for age in ageD:
print('年龄段:{0} 死亡率{1:.2f}%'.format(age,ageD[age][1]/ageD[age][0]*10))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
##2023.4.10
##1、找出排名前十的同学,并记录在文件中
f = open('score.txt')
allData = f.readlines()
f.close()

top10 = []
top10Index = []
i = 0
for line in allData:
stulst = line.strip().split()
grade = 0
for score in stulst[2:]:
grade += int(score)
top10.append((line, grade))
top10Index.append((i,grade))
i += 1
top10.sort(key = lambda x:x[1], reverse = True)
top10Index.sort(key = lambda x:x[1], reverse = True)

f = open('ret0.txt', 'w')
for i in range(10):
Index = top10Index[i][0]
f.write(allData[Index])
f.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
##2、选奖学金
fr = open('ret0.txt')
fw = open('ret.txt', 'w')
for line in fr:
lst = line.strip().split()
#判断是否及格
grade = True
for score in lst[2:]:
if int(score) < 60:
grade = False
break
if grade == True:
fw.write(' '.join(lst[0:2]) + '\n')
fw.write('{}{}\n'.format(lst[0], lst[1]))
fw.close()
fr.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
##根据数据计算
##确诊人数最多的一天
##确诊人数最多的一个月
##确诊变化的增长率与降低率最高的一天

##1
f = open('shanghai.csv', encoding = 'utf-8')
lines = f.readlines()
f.close()

maxV = 0
for i in range(1,len(lines)):
lst = lines[i].strip().split(',')
curV = int(lst[1])
if curV > maxV:
maxV = curV

for i in range(1, len(lines)):
lst = lines[i].strip().split(',')
curV = int(lst[1])
if curV == maxV:
print(lst[0])

##2
dateVD = {}
for i in range(1, len(lines)):
lst = lines[i].strip().split(',')
month = lst[0][:7]
value = int(lst[1])
if month not in dateVD:
dateVD[month] = value
else:
dateVD[month] += value

dateLst = []
for month in dateVD:
dateLst.append((month, dateVD[month]))
dateLst.sort(key = lambda x:x[1], reverse = True)
maxV = dateLst[0][1]

for item in dateLst:
if item[1] == maxV:
print(item[0])

##3
dateD = {}
for i in range(1, len(lines) - 1):
lst = lines[i].strip().split(',')
day = lst[0]
value = int(lst[1])
preValue = int(lines[i + 1].strip().split(',')[1])
if preValue == 0:
rate = None
else:
rate = (value - preValue) / preValue
dateD[day] = rate

dateLst = []
for day in dateD:
if dateD[day] != None:
dateLst.append((day, dateD[day]))
dateLst.sort(key = lambda x:x[1])
minV = dateLst[0][1]
minV = dateLst[-1][1]

for item in dateLst:
if item[1] == minV:
print('降低率最高的日期:{}({:.2f})'.format(item[0], item[1]))
if item[1] == maxV:
print('增长率最高的日期:{}({:.2f})'.format(item[0], item[1]))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
##Json数据处理(using 'eval()' fct 可以把字符串转为一个表达式,或者生成列表)
#linelist = eval('[' + line + ']')
#print(linelist, type(linelist), linelist[0])

import os

def ReadJson(fn):
retL = []
f = open(fn, encoding = 'utf-8')
for line in f:
retL.append(eval(line.strip())[0])
f.close()
return retL

def ReadFiles(fp):
retAll = []
files = os.listdir(fp)
for file in files:
fa = fp + '\\' + file
retT = ReadJson(fa)
retAll += retT
return retAll

fp = '<filepath>'
ret = ReadFiles(fp)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
##分析微博Json
##1、发表源种类、数量及所占比例,从大到小排列
srcD = {}
total = 0
for item in ret:
src = item['source']
if src not in srcD:
srcD[src] = 1
else:
srcD[src] += 1
srcD[src] = srcD.get(src,0) + 1
total += 1
#统计和排序
srcL = []
for src in srcD:
srcL.append((src,srcD[src], srcD[src]/total))
srcL.sort(key = lambda x:x[1], reverse = True)
for item in srcL:
print('发表源:{}数量:{}占比:{:.2f}%'.format(item[0], item[1]......))

##2、评论最多的微博的内容和点赞最多的微博内容
comL = []
for item in ret:
commentcnt = int(item['sth1'])
content = item['sth2']
comL.append((sth1,sth2))
comL.sort(key = lambda x:x[0], reverse = True)
maxCount = comL[0][0]
for item in comL:
if item[0] == maxCount:
print('发表的信息({}):{}'.format(maxCount, item[1])) #comment max

#sth1可以更换为其他键从而获取赞最多的评论,函数

def getContent(key):
comL = []
for item in ret:
commentcnt = int(item[key])
content = item['sth2']
comL.append((sth1,sth2))
comL.sort(key = lambda x:x[0], reverse = True)
return comL
maxCount = comL[0][0]
## for item in comL: 不应在函数内部print
## if item[0] == maxCount:
## print('发表的信息({}):{}'.format(maxCount, item[1]))

print('评论最多')
#函数生成
print('___________') #dividing line
print('most zans')
##.....
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
##检索,keywords用','隔开,并且有多种检索逻辑
def Query(allitems, keywords, method):
keyList = keywords.split(',')
i = 1
for item in allitems:
if method == '&':
ret = True
for key in keyList:
if key not in item['content']:
ret = False
break
else:
ret = False
for key in keyList:
if key in item['content']:
ret = True
break
if ret == True:
print('{}:{}'.format(i, item['content']))
i += 1

keywords = input('请输入您关心的话题:')
Query(ret, keywords, '|')

Python 函数

生成Markdown插入图片代码

1
2
3
4
5
6
import os
pre_path=input('Please input your basic path:')
dirs=os.listdir()
for file in dirs:
path='!['+file+']'+'('+pre_path+file+')'
print(path)

素数判断函数

1
2
3
4
5
6
7
def IsPrime(n):
if n<2:
return False
for i in range(2,n):
if n % i==0:
return False
return True

计算每位数的阶乘的函数

1
2
3
4
5
6
7
8
9
def Factorial(n):
sum1 = 0
for i in str(n):
i = int(i)
fact = 1
for j in range(2,i+1):
fact *= j
sum1 += fact
return sum1

寻找互质数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for m in range(100,1000):
guam = m
nstr = str(m)
n = nstr[::-1]
if n[0] == '0':
continue
else:
n=eval(n)
guan = n
r = m%n
while r!= 0:
m=n
n=r
r=m%n
if n == 1:
print('{}与{}互质'.format(guam,guan))

找出规定范围内每位数都是素数的数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for n in range(100,1000):   
nstr=str(n)
for s in nstr:
ints=eval(s)
if ints<2:
break
for i in range(2,ints):
if ints%i==0:
flag=False
break
else:
flag=True
if not flag:
break
else:
print(n)

寻找范围内的完数

1
2
3
4
5
6
7
8
9
for n in range(10,10000):
st=""
sum1=0
for i in range(1,n):
if n%i==0:
st=st+str(i)+"+"
sum1+=i
if sum1==n:
print("{}={}".format(n,st[:-1]))

最小公倍数

1
2
3
4
5
6
7
8
9
m = int(input("Please input the first num:"))
n = int(input("Please in put the second num:"))
p = m*n
r = m%n
while r != 0:
m = n
n = r
r = m % n
print(p//n)

寻找4位降序数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import random
ls=[]
for i in range(30):
x=random.randint(1000,9999)
ls.append(x)
print(ls)
count=0
for t in ls:
s=str(t)
for j in range(len(s)-1):
if s[j]<=s[j+1]:
break
else:
print(s)
count+=1
if count==0:
print("无降序数")

实现读取json文件功能的部分函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os

def ReadJson(fn):
retL = []
f = open(fn, encoding = 'utf-8')
for line in f:
retL.append(eval(line.strip())[0])
f.close()
return retL

def ReadFiles(fp):
retAll = []
files = os.listdir(fp)
for file in files:
fa = fp + '\\' + file
retT = ReadJson(fa)
retAll += retT
return retAll

获取Json字典中值数量最多的项目

1
2
3
4
5
6
7
8
9
def getContent(key):
comL = []
for item in ret:
commentcnt = int(item[key])
content = item['sth']
comL.append((key,sth))
comL.sort(key = lambda x:x[0], reverse = True)
return comL
maxCount = comL[0][0]

直角坐标系两点求距离

1
2
3
4
5
6
7
8
print("A、B两点坐标分别为A(x1,y1)、B(x2,y2)")
a=input("请输入x1:")
b=input("请输入y1:")
c=input("请输入x2:")
d=input("请输入y2:")
print("A和B两点之间的距离为:",end=" ")
print(round(pow(pow(eval(a)-eval(c),2)+pow(eval(b)-eval(d),2),0.5),1))
##上述式子由平面直角坐标系距离公式写出

通过if-elif-else计算税

1
2
3
4
5
6
7
8
9
10
11
12
income = eval(input('请输入月收入:'))
if income <= 2000:
tax = 0
elif income > 2000 and income <=3000:
tax = ( income - 2000 ) * 0.05
elif income > 3000 and income <=4000:
tax = ( income - 3000 ) * 0.15 + 50
elif income > 4000 and income <=5000:
tax = ( income - 4000 ) * 0.25 + 200
else:
tax = ( income - 5000 ) * 0.35 + 450
print('月收入{:.2f},调节税为{:.2f}'.format(income,tax))

生成指定项数的斐波拉契数列

1
2
3
4
5
6
7
8
9
10
11
12
list0 = [1,1]
terms = eval(input('斐波拉契数列的项数:'))
for i in range(terms-2):
list0.append(list0[-2]+list0[-1])
print(list0)
for t in range(2,terms-1): ##t表示index
num = list0[t] ##num为从列表中取出的数
for k in range(2,t): ##k表示可能的因数
if num%k == 0:
break
else:
print(num)

将分钟转化为X小时X分钟

1
2
3
4
5
6
7
8
9
min_time = eval(input('please input you num(minute):\n'))
hour = 0
while True:
if min_time >= 60 :
min_time -= 60
hour += 1
else:
break
print('{}hours and {}minutes'.format(hour,min_time))

try-except-finally

1
2
3
4
5
6
7
try:
try_suite ##监控这里的异常
except Exception:
except_suite ##异常处理代码
else:
finally:
finally_suite ##无论如何都执行

若有一个else,至少有一个except

format方法

1
2
3
4
5
6
7
list1=[1,2,3,4]             ##stuid
list2=[98,67,89,80] ##c-score
list3=[100,90,83,62] ##m-score
list4=[90,98,100,82] ##e-score
stuid=input("请输入学生的学号:")
listid=eval(stuid)-1 ##index
print("该学生成绩为语文{0},数学{1},英语{2},总分{3}。".format(list2[listid],list3[listid],list4[listid],list2[listid]+list3[listid]+list4[listid]))

if-else实现注册功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
####operation:1register 2login 3changepwd 4logout
####在break之前为mode赋值实现切换功能
prompt = "Select the appropriate operation: 1:register 2:login 3:change-password 4:exit\n"
users = {}
mode = 0
while True:
if mode == 0:
print("We will use the 'num-' -like form to indicate what you are doing.")
mode = input(prompt)
elif mode == "1":
while True:
user = input("1-The user will now continue to be created.\n1-Type ## to end.\n\n1-Please input your username.\n")
if user == "##":
mode = 0 ####程序初始化
break
pwd = input("1-Please input your password now.\n")
while True:
if user == pwd:
print("1-Password is too weak!")
pwd = input("1-Please input your password now.\n") ####密码强度检查
else:
break
if user not in users:
users[user] = pwd
else:
print("1-@@@Alert!The user already exists!")
elif mode == "2":
while True:
user = input("2-Please input your username.\n2-Type ## to end.\n")
if user == "##":
mode = 0 ####初始化
break
if user in users:
pwd = input("2-Please input your password now.\n")
if users[user] == pwd:
print("2-Login successfully!")
else:
print("2-Wrong password provided!")
else:
mode = input("2-The user does not exist.\n2-Enter the function number provided before to switch to another function.\n")
break ####实现功能跳转。
break
elif mode == "3":
while True:
user = input("3-Please input your username.\n3-Type ## to end.\n")
if user == "##":
mode = 0 ####初始化
break
if user in users:
pwd = input("3-Please input your original password now.\n")
if users[user] == pwd:
pwd1 = input("3-Correct password!\n3-Now please input the new password.\n")
while pwd1 == pwd:
pwd1 = input("3-The password is the same as the old one. Please re-enter it.\n")
if pwd1 == input("3-Please input your new password again!\n"):
users[user] = pwd1
print("3-Password updated successfully!")
else:
print("3-Wrong password provided!")
else:
mode = input("3-The user does not exist.\n3-Enter the function number provided before to switch to another function.\n")
break ####实现功能跳转。
break
else:
break

获取hitokoto的api内容并且将其保存至HTML文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import time
import requests
start_num = eval(input('define start_num:\n'))
file_name = str(start_num) + '.html'
while True:
stapi = requests.get('https://v1.hitokoto.cn/?encode=text')
if stapi.text == '' :
break
#### saying = str(input('define saying for {}.html:\n'.format(start_num)))
#### if saying == '' :
#### print('Empty!Empty!Empty!')
#### saying = str(input('define saying for {}.html:\n'.format(start_num)))
##file_process-start
f = open( 'D:\stapi\%s.html' % (start_num,) , 'x' , encoding='utf-8' )
#### f.write( '%s' % (saying,) )
f.write( stapi.text )
f.close()
##file_process-end
#### print('success!{}.html:{}'.format(start_num,saying))
print('success!{}.html:{}'.format(start_num,stapi.text))
start_num += 1
time.sleep(1)

format用法指南

<模板字符串>.format(<逗号分隔的参数>)

"I'm {}, I'm {} years old.".format('Tom','five')

在模板字符串中,大括号内有如下方法:{<参数序号>:<格式控制标记>}如模板字符串中有多个{},且{}中没指定序号,按出现顺序对应参数。格式控制标记顺序:<填充><对齐><宽度><,><.精度><类型>等六个字段

<填充>:修改默认填充字符。

<对齐>:<左对齐,>右对齐,^居中对齐。

<宽度>:输出字符宽度。如实际位数小于指定宽度,默认以空格补充。反之,则按实际位数输出。

<,>:用于显示数字类型的千位分隔符。

<.精度>:对于浮点数,精度表示小数部分的有效位数;对于字符串,精度表示输出的最大长度,如果实际长度大于精度,仍输出精度指定的长度。

<类型>:表示输出整数和浮点数的格式规则。

1.对于整数类型,输出格式主要包括:b(二进制),d(十进制),o(八进制),x(小写十六进制),X(大写十六进制)等。

2.对于浮点数类型,输出格式包括:e(小写e指数形式),E(大写E指数形式),f(标准浮点形式),%(百分比)。

附:format语法PDF

报错解释

SyntaxError:解释器语法错误
NameError:尝试访问一个未申明的变量
TypeError 数据类型不匹配
KeyError:请求一个不存在的字典关键字
IOError:输入输出错误(打开的文件不存在)
AttributeError: 尝试访问未知的对象属性
KeyError不存在字典关键字
ZeroDivisionError:除数为零
FileNotFoundError打开文件不存在
IndexError:请求的索引超过序列范围

 Comments
Comment plugin failed to load
Loading comment plugin