初学python,代码很烂,仅供参考

作业一:

海龟绘图

任选主题绘制一幅作品,在图上的合适位置给出图名、学生姓名和学号(注:不是仅列出姓名和学号)。

提交代码和运行效果截图或录屏视频(jpg, png, mp4, gif等)

可读性好,看代码能够理解绘图过程和效果

采用基于帧的动画上限10分(不考虑海龟自身动画),否则上限为9分。

禁止学术不端行为。

代码:

# coding=utf-8
import turtle
import turtle as t
import math
t.hideturtle()
t.speed(100)
t.pencolor("black")
def gotu(x, y):t.penup()t.goto(x, y)t.pendown()
#学号名字
gotu(-100,-300)
t.write("U2021419xx",font=("微软雅黑",14,"normal"))#篮球
t.penup()
t.home()
t.pendown()
gotu(-210,-230)
t.pensize(1)
t.pencolor("black")
t.fillcolor("orange")
t.begin_fill()
t.circle(80, 360)
t.end_fill()
gotu(-153,-207)
t.left(135)
t.forward(160)
gotu(-267,-207)
t.right(90)
t.forward(160)
t.penup()
t.home()
t.pendown()
gotu(-130,-150)
t.circle(80,-90)
t.penup()
t.home()
t.pendown()
gotu(-290,-150)
from turtle import*
for i in range(100):right(1)forward(1.2)#头部形状
t.penup()
t.home()
t.pendown()
gotu(0,-200)
t.fillcolor("yellow")
t.begin_fill()
t.circle(200, 360)
t.end_fill()
#画眼睛
gotu(-30,0)
t.fillcolor("white")
t.begin_fill()
t.circle(50, 360)
t.end_fill()
gotu(70,0)
t.fillcolor("white")
t.begin_fill()
t.circle(50, 360)
t.end_fill()
gotu(0,50)
t.fillcolor("black")
t.begin_fill()
t.circle(8, 360)
t.end_fill()
gotu(90,50)
t.fillcolor("black")
t.begin_fill()
t.circle(8, 360)
t.end_fill()
#腮红
gotu(-120,-70)
t.fillcolor("red")
t.begin_fill()
t.circle(40, 360)
t.end_fill()
gotu(150,-70)
t.fillcolor("red")
t.begin_fill()
t.circle(40, 360)
t.end_fill()#定义一个椭圆函数
def ellipse(x, y, theta, l, size=1, color='black'):t.penup()t.goto(x, y)t.setheading(theta + 270)t.pensize(size)t.fillcolor(color)t.pendown()t.begin_fill()a = 0.3for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a += lt.lt(3)t.fd(a-2)else:a -= lt.lt(3)t.fd(a)t.penup()t.end_fill()
#中分头
ellipse(-250,0,40,0.5,size = 3 ,color = "grey")
ellipse(280,55,140,0.5,size = 3 ,color = "grey")
#嘴巴
t.penup()
t.home()
t.pendown()
ellipse(-45,-48,-13,0.2,size = 3 ,color = "orange")
t.penup()
t.home()
t.pendown()
gotu(20,-50)
t.circle(200, -18)
t.penup()
t.home()
t.pendown()
gotu(20,-50)
t.circle(200, 18)
#背带裤
t.penup()
t.home()
t.pendown()
gotu(-145,-120)
t.fillcolor("black")
t.begin_fill()
t.forward(300)
t.right(60)
t.forward(150)
t.right(120)
t.forward(450)
t.right(120)
t.forward(150)
t.right(60)
t.end_fill()
t.forward(30)
t.pensize(8)
t.pencolor("white")
t.right(90)
t.forward(130)
t.penup()
t.home()
t.pendown()
gotu(125,-120)
t.right(90)
t.forward(130)
t.exitonclick()

作业二:

使用Python的海龟库完成小学数学题试卷的出题工作,要求:

(1)上半部分为题目,下半部分为答案。

(2)试题中,计算结果显示为方框。答案中,在方框中出现结果。题目和答案的顺序对应。

(3)题目每行3题,共5行。答案数量相同。

(4)题目随机生成。(建议使用random库中的sample, choice函数)

(5)不得有重复的题目(即两道题目的运算符相同、运算符左/右的操作数分别相同,结果也相同的题目)。

(6)题目分为加减乘除四类,运算过程和结果均为两位以内的整数(0到99)。

(7)完成上述代码功能(提交py代码),同时完成较为简单的软件设计文档(提交pdf即可),文档包括设计思路、关键代码解释、效果图等。

# coding=utf-8
import turtle as t
import random
t.setup(600,800)
t.hideturtle()
t.speed(100)
def gotu(x, y):t.penup()t.home()t.goto(x, y)t.pendown()
l=[]
gotu(-250,360)
t.write("试题", font=("微软雅黑", 14, "normal"))
gotu(-250,-50)
t.write("答案", font=("微软雅黑", 14, "normal"))
gotu(-250,350)
t.forward(500)
gotu(-250,-60)
t.forward(500)
for i in range(1,100):l.append(i)
j=["*","/"]
k=["+","-"]
z=-250
x=300
gotu(z,x)
def get_express():while 1 :a = random.choice(l)b = random.choice(l)sign = random.choice(k)if sign == '+':ans = a + bif sign == '-':ans = a - bif 0<ans<100:t.write(a, font=("微软雅黑", 14, "normal"))t.penup()t.forward(25)t.pendown()t.write(sign, font=("微软雅黑", 14, "normal"))t.penup()t.forward(15)t.pendown()t.write(b, font=("微软雅黑", 14, "normal"))t.penup()t.forward(22)t.pendown()t.write("=", font=("微软雅黑", 14, "normal"))t.penup()t.forward(18)t.pendown()t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.penup()t.forward(400)t.pendown()t.left(90)t.penup()t.forward(-65)t.pendown()t.write(a, font=("微软雅黑", 14, "normal"))t.penup()t.forward(25)t.pendown()t.write(sign, font=("微软雅黑", 14, "normal"))t.penup()t.forward(15)t.pendown()t.write(b, font=("微软雅黑", 14, "normal"))t.penup()t.forward(22)t.pendown()t.write("=", font=("微软雅黑", 14, "normal"))t.penup()t.forward(16)t.pendown()t.write(ans, font=("微软雅黑", 14, "normal"))t.penup()t.forward(-2)t.pendown()t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)breakelse:continuedef mul_div():ans = random.choice(l)sign = random.choice(j)q = []for i in range(1,ans):if (ans%i)==0:q.append(i)a=random.choice(q)b=ans/ab=int(b)if sign=="*":t.write(a, font=("微软雅黑", 14, "normal"))t.penup()t.forward(25)t.pendown()t.write(sign, font=("微软雅黑", 14, "normal"))t.penup()t.forward(15)t.pendown()t.write(b, font=("微软雅黑", 14, "normal"))t.penup()t.forward(22)t.pendown()t.write("=", font=("微软雅黑", 14, "normal"))t.penup()t.forward(18)t.pendown()t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.penup()t.forward(400)t.pendown()t.left(90)t.penup()t.forward(-65)t.pendown()t.write(a, font=("微软雅黑", 14, "normal"))t.penup()t.forward(25)t.pendown()t.write(sign, font=("微软雅黑", 14, "normal"))t.penup()t.forward(15)t.pendown()t.write(b, font=("微软雅黑", 14, "normal"))t.penup()t.forward(22)t.pendown()t.write("=", font=("微软雅黑", 14, "normal"))t.penup()t.forward(16)t.write(ans, font=("微软雅黑", 14, "normal"))t.penup()t.forward(-2)t.pendown()t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)if sign=="/":t.write(ans, font=("微软雅黑", 14, "normal"))t.penup()t.forward(25)t.pendown()t.write(sign, font=("微软雅黑", 14, "normal"))t.penup()t.forward(15)t.pendown()t.write(a, font=("微软雅黑", 14, "normal"))t.penup()t.forward(22)t.pendown()t.write("=", font=("微软雅黑", 14, "normal"))t.penup()t.forward(18)t.pendown()t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.penup()t.forward(400)t.pendown()t.left(90)t.penup()t.forward(-65)t.pendown()t.write(ans, font=("微软雅黑", 14, "normal"))t.penup()t.forward(25)t.pendown()t.write(sign, font=("微软雅黑", 14, "normal"))t.penup()t.forward(15)t.pendown()t.write(a, font=("微软雅黑", 14, "normal"))t.penup()t.forward(22)t.pendown()t.write("=", font=("微软雅黑", 14, "normal"))t.penup()t.forward(16)t.write(b, font=("微软雅黑", 14, "normal"))t.penup()t.forward(-2)t.pendown()t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)t.left(90)t.forward(22)
def raa():fns=random.randint(1,2)if fns==1:get_express()if fns==2:mul_div()
for r in range(5):dis = -250for i in range(3):raa()dis = dis + 180gotu(dis, x)x=x-50gotu(z, x)t.hideturtle()
t.exitonclick()

作业三:

代码行数统计

请完成代码行数统计软件,要求:

(1)读入某个指定路径的py文件(可以在程序中写为具体的文件路径,建议为你已经完成的某次作业的源代码文件)

(2)分析该源文件的总代码行数,纯注释的行数、空白行数、有效代码行(非空白、非纯注释)数、有效代码行的平均长度。

(3)分析该源文件中最大缩进层级、包含的if、for、while、try等语句的数量。

(4)分析该源文件中定义的函数定义,计算平均每个函数的平均代码行数。

(5)分析该源文件的定义的变量名,列出所有变量名,并计算变量名的平均长度。

(6)以上结果在终端上输出或写入某文本文件。

(7)完成上述代码功能(如果不能全部完成、那么可以仅完成一部分),同时完成软件设计文档(最终提交pdf即可),文档包括设计思路、关键代码解释、效果图等。

代码:

# coding=utf-8
import res = open("math.py","r",encoding="utf-8")
res=s.readlines()
print("总行数",len(res))
coun=0
numbe=0
tag=0
blank=0
str=0
hstr=0
if_num=0
for_num=0
while_num=0
try_num=0
max_s=0
pre_s=0
a={}
for li in res:li = li.strip()for i in li:str += 1if li.startswith('#'):coun+=1for i in li:str -=1if not li.split():blank+=1if re.match('if+.+:',li) :if_num+=1if re.match('for+.+:',li):for_num+=1if re.match('while+.+:',li):while_num+=1if re.match('try+.+:',li):try_num+=1if re.match('([a-zA-Z_]+)=', li):temp=li.split('=')a[temp[0]]=len(temp[0])
print("注释行数",coun)
print("空白行",blank)
num=len(res)-coun-blank
print("有效代码行",num)
print("平均代码长度",str/num)
print("if的数量",if_num)
print("for的数量",for_num)
print("while的数量",while_num)
print("try的数量",try_num)for hli in res:if re.match('def+.',hli):tag=1print("定义的函数",hli)numbe+=1continueif hli.startswith("    "):pre_s=1if pre_s>max_s:max_s=pre_sif hli.startswith("        "):pre_s=2if pre_s>max_s:max_s=pre_sif hli.startswith("            "):pre_s=3if pre_s>max_s:max_s=pre_sif hli.startswith("                "):pre_s=4if pre_s>max_s:max_s=pre_sif hli.startswith(" "):hli = hli.strip()for i in hli:if (tag==1):hstr += 1else :tag=0
print("每个函数的平均代码行数",hstr/numbe)
print("最大缩进层级",max_s)
print("变量名和其字符数量")
print(a)
aver=0
div=0
for i in a:div+=1aver=aver+a.get(i)
print("平均变量长度",aver/div)s.close()

作业四:

教师每次下发课件是PDF格式,由若干页(N页)横版的PPT组成,例如:

这样的格式不方便做笔记,于是你希望完成一个软件,将上述PDF文件转成下面的形式的PDF,共计N/4页(如不能整除则向上取整),每页的效果如下:

即每页(A4版面)左侧放置4版的课件(若不足4版则下部为空白),右侧放置多条记笔记的横线,右上方为条码,内容为自己的学号(略去学号中的字母,不足补零)。完成上述代码功能,同时完成j较为详细的软件设计文档(最终提交pdf即可),文档包括设计思路、关键代码解释、效果图等。

百度网盘

链接:https://pan.baidu.com/s/1TlG5LFlJulXNurCZm8_kRw
提取码:wrnr

作业五:

编写一个Python程序,实现下述Word/Excel文档的全文检索能力。

0. 支持图形用户界面QT/TKinter/WxWidgets等实现(若确实难以完成,可以基于命令行实现);

1. 用户输入给定的目录名以及后缀类型(如限定为.DOCX或.XLSX其一或两者);

2.用户输入待检索的关键词(如K);

3. 检索目录中(以及所有的各级子目录内)包含上述关键词的文件,以列表方式或树状方式列出满足条件的文件名及路径;

4. 可选项:支持PDF文档;支持中文检索;

5. 可选项:支持正则表达式检索;列出所有满足条件的文件名及匹配内容;

6. 可选项:支持文件过滤,例如可以仅检索创建于近5天的文件。

完成代码和文档,要求界面基于。文档内容较为详细,列出需求分析、概要设计、详细设计和实现、测试和展示等,预估文档长度大概在6页左右。提交代码和PDF格式的文档。

代码

# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from os import listdir
from os.path import join,isfile,isdir
import reclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(557, 406)self.lineEdit = QtWidgets.QLineEdit(Form)self.lineEdit.setGeometry(QtCore.QRect(70, 80, 191, 21))self.lineEdit.setObjectName("lineEdit")self.textbox= QtWidgets.QTextEdit(Form)self.textbox.setGeometry(QtCore.QRect(70, 180, 431, 191))self.textbox.setObjectName("textBox")self.pushButton = QtWidgets.QPushButton(Form)self.pushButton.setGeometry(QtCore.QRect(340, 140, 61, 21))self.pushButton.setObjectName("pushButton")self.label = QtWidgets.QLabel(Form)self.label.setGeometry(QtCore.QRect(70, 50, 72, 15))self.label.setObjectName("label")self.lineEdit_2 = QtWidgets.QLineEdit(Form)self.lineEdit_2.setGeometry(QtCore.QRect(70, 140, 113, 21))self.lineEdit_2.setObjectName("lineEdit_2")self.label_2 = QtWidgets.QLabel(Form)self.label_2.setGeometry(QtCore.QRect(70, 120, 72, 15))self.label_2.setObjectName("label_2")self.label_3 = QtWidgets.QLabel(Form)self.label_3.setGeometry(QtCore.QRect(200, 120, 72, 15))self.label_3.setObjectName("label_3")self.lineEdit_3 = QtWidgets.QLineEdit(Form)self.lineEdit_3.setGeometry(QtCore.QRect(200, 140, 113, 21))self.lineEdit_3.setObjectName("lineEdit_3")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.pushButton.setText(_translate("Form", "确定"))self.label.setText(_translate("Form", "目录"))self.label_2.setText(_translate("Form", "文件格式"))self.label_3.setText(_translate("Form", "文件名称"))self.pushButton.clicked.connect(self.oncalbutton)def oncalbutton(self):dirction = [self.lineEdit.text()]l=[]content = self.lineEdit_2.text()contex = self.lineEdit_3.text()while dirction:current = dirction.pop(0)for subPath in listdir(current):path=join(current,subPath)if isfile(path):if path.endswith(content):l.append(path)elif isdir(path):dirction.append(path)l1=[]for i in l:if bool(re.search(contex,i)):l1.append(i)l2=' , '.join(l1)print(l2)self.textbox.setText(l2)
app=QtWidgets.QApplication(sys.argv)
mainwindow=QtWidgets.QMainWindow()
w=Ui_Form()
w.setupUi(mainwindow)
mainwindow.show()
sys.exit(app.exec())

课程报告(大作业):

使用爬虫下载免费视频(A站)

百度网盘

链接:https://pan.baidu.com/s/1LOaJtWgSTyqlxewybA8kYA 
提取码:t4rj

北京科技大学python(选修课)作业相关推荐

  1. 北科大matlab第一次作业,北京科技大学应用计算方法作业与答案

    <北京科技大学应用计算方法作业与答案>由会员分享,可在线阅读,更多相关<北京科技大学应用计算方法作业与答案(16页珍藏版)>请在人人文库网上搜索. 1.一.第一次作业(一)2- ...

  2. 北京科技大学计算机控制大作业,北京科技大学计算机控制系统实验报告

    北京科技大学计算机控制系统实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 计算机控制技术课程计算机控制技术课程 实验报告 ...

  3. 大连理工大学Python选修课作业训练5

    1.内容:读取names.txt文件内容,分别统计男性和女性姓名中出现"胜"字的频率. with open('names.txt', 'r', encoding='utf-8') ...

  4. 北京交通大学Python课程设计大作业(四)——典籍词频统计

    北京交通大学Python课程设计大作业(四)--典籍词频统计 文章目录 北京交通大学Python课程设计大作业(四)--典籍词频统计 一.词频统计任务介绍 二.典籍词频统计python源代码如下 三. ...

  5. Python选修课,期末大作业Pygame小游戏<Sharpshooter>

    本篇博文为博主大一Python选修课的期末作业,主要运用了Pygame叙写了一个实现小小功能的小游戏,可以随意拿去当作业上交.(程序在文底附录) 一.目标分析. 1.在屏幕下方中央生成一个炮台 2.随 ...

  6. 北京科技大学计算机作业,北京科技大学计算机题

    北京科技大学 计算机基础 模拟题(C卷) 一.单项选择题 1. 到目前为止,计算机的发展已经历了4个时代,划分时代的主要依据是计算机的(A) A. 规模 B. 功能 C. 性能 D. 构成元件 2. ...

  7. 2023年北京科技大学通信考研上岸前辈备考经验指导

    一.写在前面 考研是一场持久战,既然选择了考研这条路,就不要想着回头,给自己留后路,不要想着今年试一试,考不上就二战,或者考不上就找个工作,与其这样,还不如全身心的投入,拼一把,等上了岸以后回头看真的 ...

  8. 北科大计算机专业研究生多少分能考上,2022年北京科技大学计算机考研初试复习经验分享...

    北京科技大学是一所211大学,计算机学科评估B%2B,软件工程学科评估没有,在211大学中排名中上游左右.+北京科技大学的计算机考研招生主要在计算机与通信工程学院,其它的学院招生人数很少.数理学院只招 ...

  9. 咕泡学院:(1)唐宇迪python课程作业

    超级详细的python思维导图见链接: https://download.csdn.net/download/m0_37957160/22526313 python数据科学必备工具实战思维导图链接: ...

最新文章

  1. git for c#, clone方法
  2. ArcGIS时态数据应用——动态展示3个月内犯罪案件数量变化
  3. c++ primer 练习题4.34:
  4. java 设计作业——简单计算器
  5. 一对一语音视频直播双端原生+php后台源码
  6. Apache Struts 修复 OGNL 技术中可能存在的 RCE 缺陷
  7. FISCO BCOS 跨链WeCross ppt
  8. 基于jQuery的视频和音频播放器jPlayer
  9. 金蝶KIS商贸版开发销售出库单、销售订单带商品图片打印单据
  10. 【产业互联网周报】AWS 全球换帅,中国区发布战略;杨杰回应回A,中移动计划千亿投5G;全球缺芯潮持续...
  11. [原创]分布光纤测温DTS产品在市场上两种主流产品架构的区别与对比-未来趋势必然向单板化方向发展
  12. IEEEtran 的使用及 bibtex的文献类型
  13. Kotlin版注解处理器Annotation Processor
  14. 漫谈程序员系列 怎么告别 混日子
  15. 【组合逻辑电路】——显示译码器
  16. 阿米云销CRM V2.0.0 正式公测
  17. 如何调换手机桌面位置_教大家桌面手机分身图标不见了怎么办
  18. 购买《哈利波特》书方案
  19. 【重磅新课上线】一建通信与广电实务(老杨)
  20. 【应用回归分析】CH3 回归参数的估计3——约束最小二乘估计

热门文章

  1. google play连接超时_Google Play音乐,Music Play商店即将关闭|音乐|音乐库|管理器|play...
  2. An unhandled exception occurred: Cannot find module ‘@angular-devkit/build-angular/package.json‘ Req
  3. 关于SSD Trim功能
  4. 初学者用什么编写c语言_编写初学者级教程
  5. 电脑linux系统连接手机系统文件,我来教你简单几步提取自己手机系统固件system.img文件-img文件...
  6. IO多路复用机制——epoll
  7. 深聊丨第四范式陈雨强:如何用AI大模型打开万亿规模传统软件市场?
  8. 煮酒论英雄 扒扒三国演义告诉我们的60条真理
  9. 在线将ppt转换成pdf格式的方法
  10. html5 css透明效果,css中实现背景透明的三种方式