1、
使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个等边三角形,边长为 200 像素,效果如下图所示。请结合程序整体框架,根据提示代码完成程序。
提示代码:
import turtle
d = 0
for i in range(____①____): turtle.fd(____②____) d = d + 120 turtle.seth(____③____)
import turtle as t d = 0 for i in range(3): t.seth(d) d = d + 120 t.fd(200)
2、
请编写程序,生成随机密码。具体要求如下:
(1)使用 random 库,采用 0x1010 作为随机数种子。
(2)密码 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&* 中的字符组成。
(3)每个密码长度固定为 10 个字符。
(4)程序运行每次产生 10 个密码,每个密码一行。
(5)每次产生的 10 个密码首字符不能一样。
(6)程序运行后产生的密码保存在“随机密码.txt”文件中。
import random random.seed(0x1010) initial = "" #存放首字母 ls = [] #存放密码 while len(ls) < 10: ret = "" for i in range(10): res = random.choice("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!")#从该字符串随机选一个 ret = ret + res if ret[0] in initial: #如果该密码的首字母在首字母仓库存在 continue else: ls.append(ret) initial += ret[0] secret = '\n'.join(ls) print(secret) with open("随机密码.txt", "w", encoding = "utf_8") as f: f.write(secret)
3、
根据输入正整数 n,作为财务数据,输出一个宽度为 20 字符,n 右对齐显示,带千位分隔符的效果,使用减号字符“-”填充。如果输入正整数超过 20 位,则按照真实长度输出。提示代码如下:
n = input()
____①____ #可以多行
输入输出示例
输入 | 输出 | |
示例 1 | |
|
n = input() # 请输入整数 print("{:->20,}".format(eval(n))) #数字格式化知识
4、
PyInstaller 库可以对程序打包,给定一个 Python 源程序文件 a.py,图标文件为 a.ico,将其打包为在 Windows 平台上带有上述图标的单一可执行文件,使用什么样的命令?
pyinstaller –i a.ico –F a.py
5、
使用 turtle 库的 turtle.right() 函数和 turtle.fd() 函数绘制一个菱形四边形,边长为 200 像素,效果如下图所示。请勿修改已经给出的第一行代码,并完善程序。
提示代码:
import turtle as t
#自己的思路 import turtle as t d = 330 for i in range(1,5): if i % 2 != 0: t.seth(d) d = d + 60 t.fd(200) else: t.seth(d) d = d + 120 t.fd(200) #答案 import turtle as t t.right(-30) for i in range(2): t.fd(200) t.right(60*(i+1)) for i in range(2): t.fd(200) t.right(60*(i+1))
6、
苏格拉底是古希腊著名的思想家、哲学家、教育家、公民陪审员。苏格拉底的名言部分被翻译为中文,部分内容分词结果由考生目录下文件 sgldout.txt 给出。对文件 sgldout.txt 进行分析,输出词频排名前五的词 (不包括中文标点符号) 和次数到 sgldstatistics.txt。
参照输出格式如下:
了:234
了:234
了:234
了:234
了:234
答案:
fo = open("sgldout.txt","r",encoding ="utf-8") words = fo.readlines() fo.close() sym = ";。,“”: " DictWords = {} for ls in words: if ls[:-1] not in sym: #学习一下 DictWords[ls[:-1]] = DictWords.get(ls[:-1], 0) + 1 #学习一下 L = list(DictWords.items()) L.sort(key = lambda s:s[1],reverse=True) # 输出到文件 fo = open("sgldstatistics.txt", "w", encoding="utf-8") for i in range(5): fo.writelines(L[i][0] + ":" + str(L[i][1]) + "\n") fo.close() # print 输出 for i in range(5): print(L[i][0] + ":" + str(L[i][1]))
7、
从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为十进制数输出显示在屏幕上,示例如下:
输入
请输入一个由 1 和 0 组成的二进制数字串:1101
输出
转换成十进制数是:13
s = input() # 请输入一个由1和0组成的二进制数字串: d = 0 while s: d = d + eval(s[0]) * pow(2, (len(s)-1)) s = s[1:] print("转换成十进制数是:{}".format(d))
8、
使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素。效果如下图所示。
import turtle r =10 head = 90 for i in range (4): turtle.seth(90) turtle.circle(r,360) r = r +40
9、
从键盘输入一个中文字符串变量 s,内部包含中文逗号和句号。
问题1:(8分)计算字符串 s 中的中文字符个数,不包括中文逗号和句号字符。示例如下:
输入:
没有人不爱惜他的生命,但很少人珍视他的时间。
输出:
中文字符数为20。
问题2:(7分)用 jieba 分词后,显示分词的结果,用”/”分隔。并显示输出分词后的中文词语的个数,不包含逗号和句号。示例如下:
输入:
没有人不爱惜他的生命,但很少人珍视他的时间。
输出:
没有/ 人/ 不/ 爱惜/ 他/ 的/ 生命/ 但/ 很少/ 人/ 珍视/ 他/ 的/ 时间/
中文词语数为14
import jieba s = input("请输入一句中文:") s = s.replace(",","").replace("。","") l2 = jieba.lcut(s) print("/".join(l2)) # print(li) print("中文词语数为:{}".format(len(l2))) print("\n中文字符数为{}。".format(len(s)))
程序实现
打印出1~1000之间包含3的数字:
如果3是连在一起的(如233)则在数字前加上&; .
如果这个数字是质数则在数字后加上*
li = [] for i in range(3,1001): if i == 3: print(3) elif "3" in str(i): li.append(int(i)) for j in li: tag = 0 for k in range(2,j): if j % k ==0: tag = 1 if tag == 0: print(str(j)+ "*") elif "33" in str(j): print("&"+str(j)) #精简之后 for i in range(3,1001): if i == 3: print(3) elif "3" in str(i): tag = 0 for k in range(2,i): if i % k ==0: tag = 1 if tag == 0: print(str(i)+ "*") elif "33" in str(i): print("&"+str(i))