
头歌
Meropidae
你的关注是我最大的动力
展开
-
Python-算法思维-4.2递归与分治1:数字三角形、最大子序列积
第1关:数字三角形中路径最小积本关任务:在数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字的乘积最小,路径上的每一步都只能往左下或右下走,只需求出最小的乘积,不需要给出具体路径。 2 3 8 1 2 2 4 7 1 4 8 5 2 6 5输入的第一行为数字三角形的层数,后面为数字三角形。n = eval(input())A=[]for i in range(n): X = A.append(list(map(int, input().split())))def Min原创 2022-01-07 19:52:00 · 2128 阅读 · 0 评论 -
Python-算法思维4.2 递归算法
第1关:递归求列表元素的和从键盘输入一个列表,元素为整数,调用递归函数sumLIst(L),求出列表L中所有元素的和,返回和,在主函数中输出。#二分查找def binary_search(A, x): ########## begin ########## # 请在此填写代码,找到x返回索引号,没找到返回-1 low,high=0,len(A)-1 while high>=low: mid=(high+low)//2 if A原创 2022-01-06 21:56:29 · 3690 阅读 · 1 评论 -
Python-算法思维-4.1二分法1:查找平方和
第1关:二分查找算法本关任务:编写一个实现二分算法的函数,能在一个已排序列表中快速搜索指定的数。#二分查找def binary_search(A, x): ########## begin ########## # 请在此填写代码,找到x返回索引号,没找到返回-1 low,high=0,len(A)-1 while high>=low: mid=(high+low)//2 if A[mid]==x: r原创 2022-01-05 15:20:13 · 4156 阅读 · 1 评论 -
Python-算法思维4.3.2 二分法求方程的根
第1关:给定方程给定单调上升区间方程的根函数f(x)=x2−10x+3在区间[8,12]单调上升且与x轴相交,求解该近似解,要求精度0.0001,即|f(x)|<=0.0001。def f(x): return x**2-10*x+3#Student Startdef findroot(a,b,eps): while abs(a-b)>0.00001: if f(a+0.000001)*f(b)<0: a+=0.0000原创 2022-01-04 16:30:14 · 6418 阅读 · 1 评论 -
Python-算法思维4.3.1 二分搜索
第1关:不重复序列二分搜索编写函数,函数功能是查找已排序的不重复数据列表A中的指定元素x,找到给出该数在列表中的下标,找不到输出-1。#Student startdef findx(A,x): high,low=len(A)-1,0 while high>=low: mid=(high+low)//2 if A[mid]==x: return mid elif A[mid]>x:原创 2021-12-30 11:48:29 · 3006 阅读 · 1 评论 -
Python算法-穷举法和二分法
第1关:百钱百鸡我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?### 百钱百鸡 ###n=100c=0for i in range(0,int(n/5)): for j in range(0,int(n/3)): if i*5+j*3+int((n-j-i)/3)==n and (n-j-i)%3==0: c+=1 print('鸡翁的原创 2021-12-30 11:43:24 · 4432 阅读 · 0 评论 -
Python-算法思维4.0.1迭代算法
第1关:谷角猜想日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1。如此经过有限次运算后,总可以得到自然数 1。人们把谷角静夫的这一发现叫做“谷角猜想”。编写一个程序,由键盘输入一个自然数 n ,把 n 经过有限次运算后,最终变成自然数 1 的全过程保存在列表中并打印出来。#Student Startn=int(input())ls=[n]while n>1: if原创 2021-12-30 11:26:56 · 4923 阅读 · 2 评论 -
Python-算法思维-4.4动态规划2:背包问题
第1关:01背包问题本关任务:有n种物品,它们有各自的体积和价值,现有背包容积为m,每种物品只能装入0次或1次( 所以称为01背包问题),如何让背包里装入的物品的价值总和最大,输出这个最大价值。要求使用递推方式完成本任务。编程要求输入的第一行为两个整数n和m,用空格隔开,n为物品种类,m为背包容量。 第二行为n种物品的体积,均为整数,用空格隔开。 第三行为n种物品的价值,均为整数,用空格隔开。根据提示,在右侧编辑器补充代码,计算并输出最大可能价值。n,m = map(int, in原创 2022-01-05 17:32:40 · 860 阅读 · 0 评论 -
Python-数据思维-6.3Matplotlib数据可视化1
第1关:matplotlib绘图基础本关任务:按提示的要求使用matplotlib绘图,一共要求完成3个函数的设计,分别绘制线图、饼图和条形图,绘制图形的数据已在函数中指定,函数的参数是一个图片文件名,请将图片的绘制结果保存到这个图片中,图片的dpi使用默认值即可。import numpy as npimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams['font.family']='simHei' #显示汉字原创 2021-12-27 16:26:11 · 4116 阅读 · 1 评论 -
Python-科比投篮预测
2016年4月12日星期三,科比在洛杉矶湖人队的最后一场比赛中砍下60 分,标志着他从NBA退役。利用20年来科比的进球和失误的数据,你能预测哪些投篮会落在篮框里吗?本实训主要实现:科比投篮数据可视化,包括射击精准度、赛季准确性、不同投篮距离的命中率、剩余时间是否影响准确率、不同对手的命中率、比赛节数与命中率之间的关系。...原创 2021-12-27 16:33:39 · 5685 阅读 · 3 评论 -
Python-实验3.2 Numpy应用
第1关:求二维数组中最大值及所在的位置本关任务:编写一个能计算求二维数组中最大值及所在的位置。# -*- coding: utf-8 -*-import numpy as npn,m=map(int,input().split(' '))np.random.seed(7)a=[np.random.randint(1,100) for i in range(n*m)]b=np.array(a).reshape(n,m)row,col=1,1maxx=b[0,0]###########原创 2021-12-22 11:41:28 · 3411 阅读 · 1 评论 -
Python-算法思维-4.4动态规划1:数字三角形
第1关:递归方式解决数字三角形问题本关任务:使用递归形式的动态规划(自顶向下),在数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字的乘积最小,路径上的每一步都只能往左下或右下走,只需求出最小的乘积,不需要给出具体路径。 2 3 8 1 2 2 4 7 1 4 8 5 2 6 5注意,必须使用动态规划表格,在测试输入中,有些输入的层数非常高,不使用动态规划会超时。n = eval(input())A=[]for i in range(n): X = A.append(l原创 2021-12-20 17:16:17 · 1493 阅读 · 0 评论 -
Python-算法思维-4.2递归与分治2:平面最小点对
第1关:平面最小点对本关任务:给定二维平面中n个点的坐标(整数),找出距离最近的2个坐标点之间的距离,n<=10000。import mathn = eval(input())A=[]for i in range(n): x,y= map(int, input().split()) A.append((x,y))def Distance(a, b): return math.sqrt((a[0]-b[0])**2+(a[1]-b[1])**2)#求[lo原创 2021-12-20 17:11:34 · 1164 阅读 · 0 评论 -
Python-数据思维-6.2Numpy科学计算应用1
第1关:创建numpy数组本关任务:按要求生成numpy数组: 1 使用numpy的linspace函数,创建初值为1,终止为5,元素个数为20的等差数组 2 将数组B变换成2行5列的二维数组 3 随机数种子为7,生成4行3列的随机数数组,值在[0,1)之间 4 随机数种子为11,生成3行4列的正态分布随机数数组,期望值为5,标准差为2 5 将数组D的内容写入文本文件,使用英文分号为分隔符,浮点数精确到小数点后5位,文件名为1.txt 6 使用斐波那契数列(1,1,2,3,5,...)生成一个5行4列的原创 2021-12-20 17:04:02 · 4660 阅读 · 2 评论 -
Python-音乐播放器APP制作
1# -*- coding=utf-8 -*-import wximport urllib.requestimport pygame # pip install pygameimport osimport reimport timefrom threading import Threadimport mathimport datetimeAPP_TITLE = u'音乐播放器'MAX_LYRIC_ROW = 15LYRIC_ROW_REG = '\[[0-9]{2}:[0原创 2021-12-27 16:32:18 · 1505 阅读 · 1 评论 -
Python-网络思维-5.2网页爬虫与信息提取实战
这是一个爬取电影票房的案例,主要是通过 中国电影票房 获取电影票房信息,将获得到的内容保存至 .txt 文件。# 首先我们需要导入 requests 库import requests# 导入 BeautifulSoup 库from bs4 import BeautifulSoupurl = 'http://58921.com/alltime?page='#网页基本url,需要在后面连接页面号headers = { 'User-Agent': 'Mozilla/5.0 (Wi原创 2021-12-09 18:02:58 · 2788 阅读 · 0 评论 -
Python-网络思维-2.1网络爬虫基础
第1关:获取超文本文件并保存至本地本关任务:本关我们将使用Python程序,实现通过网页的url,获得服务器返回的超文本文件,并保存为文本文件。# -*- coding: utf-8 -*-"""Created on Mon Mar 16 16:36:53 2020@author: Administrator"""import requestsurl="http://www.hnu.edu.cn/"headers={'User-Agent': 'Mozilla/5.0 (Windo原创 2021-12-09 18:01:20 · 2711 阅读 · 1 评论 -
HTML——表格
第1关:表格的基本构成本关任务:创建你的第一个表格,它的边框宽度为5px,内容和效果图展示的一样。实现的效果如下:<!DOCTYPE html><html><head> <meta charset="UTF-8"></head><body> <!-- ********* Begin ********* --> <table border="5"> .原创 2021-11-29 17:43:25 · 11501 阅读 · 2 评论 -
HTML——基本标签
第1关:创建第一个 HTML 标签本关任务:创建你的第一个标签<h1></h1>,文本内容为welcome to Educoder。实现的效果如下:<!DOCTYPE html><html><head> <meta charset="UTF-8"></head><body> <h1>Hello</h1> <!-- *********原创 2021-11-29 17:35:50 · 9810 阅读 · 0 评论 -
Python-实验2.6.3 函数拓展练习
第1关:练习使用参数要求对于输入的a,b,c三个数,编写函数roots(a,b,c),求方程 ax2+bx+c=0 的解,返回由方程根构成的列表,若方程有无数解,返回['inf']。# coding:utf-8 from math import sqrta = float(input()); b = float(input()); c = float(input())#请在此添加代码,求方程 ax^2+bx+c = 0的解,返回由方程根构成的列表,若方程有无数解,返回['inf']#***原创 2021-11-25 11:48:16 · 6836 阅读 · 1 评论 -
实验2.6.2 Python 基础之自定义函数
第1关:函数的参数 - 搭建函数房子的砖定义并调用一个函数,功能是对输入的列表中的数值元素进行累加,列表中元素的个数没有确定; 将累加结果存储到变量d中; 输出累加结果d。# 创建一个空列表numbersnumbers = []# str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表str = input()lst1 = str.split(' ')# 将输入的数字字符串转换为整型并赋值给numbers列表for i in range(len(lst1)):原创 2021-11-25 11:20:05 · 4299 阅读 · 0 评论 -
Python语言基础-2.5函数(二)
第1关:函数的参数使用定义函数plus,功能是对参数(一个列表)中的数值元素进行累加,列表中的元素个数不确定; 函数返回累加结果。#创建一个空列表numbersnumbers = []#str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表str = input()lst1 = str.split(' ')#将输入的数字字符串转换为整型并赋值给numbers列表for i in range(len(lst1)): numbers.append(int(原创 2021-11-22 23:02:12 · 5759 阅读 · 0 评论 -
实验2.6.1 Python基础之之内置函数调用
第1关:内置函数 - 让你偷懒的工具定义一个函数,功能是判断一个数是否为素数; 调用函数,对输入的整数进行判断。如果是素数则输出为True,否则输出为False。#输入一个整数nn = int(input())#********** Begin *********#def prime(m): if m<2: return False for i in range(2,m): if m%i==0: return F原创 2021-11-22 22:37:31 · 4992 阅读 · 1 评论 -
Python基础综合
1.python组合数据十位评委对六位歌手打分,六位歌手的得分数据如fs列表所示 fs=[['zhang',9.5,9.8,9.7,9.6,9.5,9.9,9.6,9.2,9.3,9.7], ['huang',8.5,8.8,7.7,7.6,8.5,8.3,9.1,7.8,7.5,9.3], ['liu',9.5,8.8,7.2,9.6,8.5,6.5,6.3,7,6.9,9], ['chen',9.5,9.8,8.7,8.6,7.5,8.8,8.1,9.3,9.2,9.9], ['lin',9.9,7原创 2021-11-13 23:38:38 · 3347 阅读 · 0 评论 -
Python实验2.5.3 列表与字符串进阶
第1关:字符串基本操作任务1 字符串拼接 依次输入两个字符串赋值给s1和s2,并将s1中所有英文字母转换为大写后连接到s2后面,并将拼接的结果赋值给s3,输出s3的值。 提示:应用“+”运算和字符串的upper()方法。任务2 根据字符串的长度确定字符串输出重复次数 输入一个字符串赋值给s4,根据s4的长度来确定将s3重复多少次,重复运算结果赋值给s5,并输出s5的值。例如:输入“A1”, 如果s3的值是123XTU,则输出123XTU123XTU。 提示:求字符串的长度用内置函数len(),重复运原创 2021-11-03 00:47:39 · 5394 阅读 · 1 评论 -
实验2.5.2 Python 基础之字典
第1关:字典的使用:这份菜单可以修改字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。如果将列表看作有序对象的集合,那么可以将字典当作无序的集合。我们将以菜单的例子来说明字典使用的基本知识,餐馆的菜单上不仅包含菜名,菜名后面还必须包含该道菜的价格。如果要用列表实现,就需要两个列表,例如:list_menu = ['fish','pork','potato','noodles'] list_price = [40,30,15,10]给定一个菜名,要查找相应的价格,原创 2021-11-02 10:37:45 · 8464 阅读 · 0 评论 -
Python语言基础-2.4列表(理)
第1关:列表的增删改查本关任务:编写一个好友名单管理的小程序。可以实现对名单的增删改查。列表的增删改查 好友名单管理#1.请在好友名单尾部添加一个好友'曾海洋'#2.请在好友名单开头添加一个好友'胡波'#3.请将首个王姓好友的名字修改为'王仁'。#4.删除首个赵姓好友#建立初始名单nameList=eval(input())############begin################1.请在好友名单尾部添加一个好友'曾海洋'nameList.append('曾海洋原创 2021-11-01 16:57:42 · 6888 阅读 · 0 评论 -
实验2.5.1 Python基础-列表
第1关:列表元素的增删改:客人名单的变化本关任务是对一个给定的列表进行增、删、改等操作,并输出变化后的最终列表。列表是由按一定顺序排列的元素组成,其中的元素根据需要可能会发生变化。其中,列表元素的添加、删除或修改等是最常见的操作。下面以一则请客的故事来说明列表元素操作的应用场景: 有个人邀请几个朋友吃饭,初步拟定了一个客人名单列表guests=['Zhang san','Li si','Wang wu','Zhao liu']。后面因为一些临时情况,这个客人名单不断变化: Zhao liu说要原创 2021-11-01 16:44:44 · 9052 阅读 · 0 评论 -
Python语言基础-2.3循环
循环综合-数列与特殊数问题第1题-斐波那契数列在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)斐波那契 请完成求第n项斐波那契数的程序并输出结果list1=[6,8,10,20] #n的取值列表list1numbers = [] #用来存放结果的 #for n in list1: #依次从列表中取出数据赋值给n,求第n项的结果并保存到numbers[]列表中 #请在下面编写代码d原创 2021-10-22 16:55:27 · 5147 阅读 · 1 评论 -
Python基础经典问题-天天向上的力量
一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1‰,当没有学习时由于遗忘等原因能力值相比前一天下降1‰。每天努力和每天放任,一年下来的能力值相差多少呢?import math dayup = math.pow((1.0 + 0.001), 365) # 每天提高0.001 daydown = math.pow((1.0 - 0.001), 365) # 每天荒废0.001 print("向上: %.2f, 向下: %.2f."%(dayup, daydown)) 如果原创 2021-10-20 23:21:20 · 14430 阅读 · 0 评论 -
Python基础经典问题-特殊图形的输出(星号三角形)
1.键盘输入m行n列,在屏幕上输出m行n列的*行图案 例如输入6,7 输出为:m,n= eval(input())for i in range(m): for x in range(n): print('*',end='') print()2.从键盘输入m行,在屏幕上输出m行的直角图案例如输入:8 输出为:m=eval(input())for i in range(1,m+1): for j in range(1,2*i):原创 2021-10-20 23:15:53 · 27067 阅读 · 5 评论 -
Python循环结构基础-for循环嵌套
n个钱买n只鸡的问题每只公鸡价值5元,每只母鸡价值3元,每3只小鸡价值1元。现有n个钱想买n只鸡,问公鸡、母鸡、小鸡各买几只? 依次输出公鸡母鸡小鸡的数目,如输出结果:22 23 45#n个钱买n只鸡问题print("依次输出公鸡 母鸡 小鸡的数量:")n=eval(input()) #n表示钱的总数和鸡的总数#代码开始for i in range (0,int(n/5)): for j in range (0,int(n/3)): if i*5+j*3+i原创 2021-10-20 23:03:49 · 5541 阅读 · 0 评论 -
Python基础经典问题-输出给定范围内的所有素数
输出给定范围以内的所有素数。输出时,每行显示10个数。 程序从测试集中读取到数据范围m,求2~m之间所有素数。素数:除1与本身n以外没有其他约数。用2...n-1每个数去除n,都不能除尽。如2、3、5、7、11、 13等。m=eval(input()) #输入范围l=[2]c=0for i in range(2,m+1): for j in range(2,i): if i%j==0: break elif原创 2021-10-20 22:55:44 · 7092 阅读 · 1 评论 -
python基础经典问题-判断身份证号码是否有效
输入一个身份证号,判断其是否有效: 若不为18位,提示“长度错误”; 若前17位不为数字,提示“有无效字符”; 最后一位为校验码,若错误,提示”校验码错误”, 若校验码正确,提示“校验码正确”。...原创 2021-10-20 22:51:55 · 9416 阅读 · 3 评论 -
python基础经典问题-字母金字塔
输入行数,打印如下字母金字塔图形:输入:7 打印图形如下:提示: 打印图案关键是找出其中的规律。 根据打印第几行,算出每行打印多少列。 输出的每一行包括三部分组成:空格、字符串和换行。n=eval(input())list1=list('ABCDEFGHIJKLMNO') #正序输出的部分list2=list('ONMLKJIHGFEDCBA') #倒序输出的部分for i in range(1,n+1): #最外循环为打印行 for j in原创 2021-10-20 22:45:54 · 12521 阅读 · 2 评论 -
Python基础经典问题-凯撒密码加密
凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符对应关系如下: 原文:abcdefghijklmnopqrstuvwxyz 密文:defghijklmnopqrstuvwxyzabc#凯撒密码加密p= input() t='' #输入明文#代码开始 for c in p : if 'a'<=c<='z': t+=ch...原创 2021-10-19 22:50:31 · 3960 阅读 · 1 评论 -
Python基础经典问题-前n项之和
求s= a + aa + aaa + … + aa…a 的值(最后一项中 a 的个数为 n ),其中 a 是一个1~9的数字,例如: 当a=2,n=5时,s= 2 + 22 + 222 + 2222 + 22222num = eval(input())numbers =eval(input())l1 = []a = 0for i in range(0,numbers): a += num * (10 ** i) l1.append(a)c=sum(l1)print (c原创 2021-10-19 22:24:16 · 7531 阅读 · 0 评论 -
Python基础经典问题-求sin正弦值
完成程序,从键盘输入x的值,求 sinx=x−3!x3+5!x5−7!x7+⋯ 直到最后一项绝对值小于le的-7次方(即10−7次方)为止(注:x为弧度值)。结果保留10位小数。#求正弦值from math import *x=eval(input()) #输入弧度值#代码开始t=xs=0n=1while abs(t)>=10**(-7): s+=t n+=2 t*=-x**2/(n*(n-1))print('%.10f'%s)注意循环结构内原创 2021-10-19 22:11:15 · 8643 阅读 · 1 评论 -
Python基础经典问题-水仙花数
水仙花数是一个三位数的自然数,该数各位数字的立方和等于该数本身,例如:153为水仙花数,13+53+33=153。 由小到大分行输出所有水仙花数。提示:需要求出数值上的每位数字。#水仙花数由小到大分行输出for i in range(100,1000): a=i//100 b=(i-a*100)//10 c=i%10 if a**3+b**3+c**3==i: print(i)重在理解循环结构和数值运算。...原创 2021-10-19 22:04:57 · 1912 阅读 · 0 评论 -
Python循环结构基础-continu/break
1.通过循环计算并输出满足条件的正方体的体积:正方体棱长从1到10依次计算,当体积小于100不输出。#continue的用法#代码开始for i in range(1,11): n=i**3 if n<100: continue else: print(n)2.输入若干个学生成绩,当成绩小于0时输入结束。计算出平均分,并输出不及格的人数。#break的用法n=0 #总人数count=0 #不及格人数l=[]w原创 2021-10-19 22:00:18 · 3894 阅读 · 1 评论