学Python编程为什么会对学好数学有帮助呢?

news2024/12/30 3:40:43

Python编程和数学有什么关系呢?Python的起源是怎样的呢?

我们先来简单认识一下Python,和Python交个朋友。

Python的全拼是P—Y—T—H—O—N,发音是Python,汉语解释是蟒蛇的意思。

我们再来看Python的图标,下图Python的图标,Python的图标看上去也是蛇。

同学们可能会感到比较奇怪,Python是一门编程语言,编程语言和蟒蛇有什么关系呢?

把编程语言和蟒蛇联系起来的是荷兰人吉多·范罗苏姆,英文读音是Guido van Rossum,他是一名计算机程序员。

在1989年的圣诞期间,吉多休假在家,吉多不是一个可以闲得住的人。他一直在考虑如何对ABC语言进行改进,ABC语言是由荷兰数学与计算机科学国家研究所研制的编程语言,它主要用于编程教学使用,吉多想对ABC语言进行改进,改进的语言不但能用于教学,而且可以用于应用开发。

于是他在1989年开始编写Python语言。到1991年第一个Python解释器诞生,吉多整整用了两年左右的时间研发Python语言。

对外发布新的编程语言,需要给编程语言起个名称,当时吉多迷上了英国肥皂剧《Monty Python飞行马戏团》,他就从这个肥皂剧的名称中选择了Python。Monty Python是英国六人喜剧团体,他们制作的肥皂剧在七、八十年代特别受欢迎,吸引了众多的粉丝,吉多就是其中的粉丝之一。因此,新的编程语言被吉多命名为Python,也就不足为怪了。

下图是Monty Python飞行马戏团的海报。

前面我们知道了Python的创始人是荷兰人吉多·范罗苏姆,Python语言是在ABC语言的基础上创建的新的编程语言,由此可见Python语言本身就与数学密切相关。

我们再来看一看编程与数学的关系。

1、数值计算与编程

同学们现在接触最多的数学知识就是四则运算,四则运算也称为数值计算,不过同学们现在接触的都是简单的数值计算,很容易利用笔算或口算来完成数值计算。

复杂的数值计算包括解多元方程组、积分、微分等运算,这些复杂的数值计算,同学们在高中和大学才能接触到。这类复杂计算有时依靠人的脑力很难计算,需要借助于计算机并编写计算程序才能完成,一些运算量比较大的简单四则运算也需要借助程序来完成运算。

下面我们来看一个随着n的增大,运算量越来越大的四则运算。

现在我们做个简单的乘法运算,我们先从2开始:

先做2X1运算,运算的值是2;

再做3X2X1运算,运算的值是6;

继续做4X3X2X1运算,运算的值是24;

再做5X4X3X2X1运算,运算的值是120;

一直到nX(n-1)X(n-2)X3X2X1的运算,这里的n是指自然数1、2、3、4、5、6、……

类似上面的运算也称为阶乘运算,阶乘运算是所有小于及等于该数的自然数的积。例如自然数6的阶乘运算是:

6 X 5 X 4 X 3 X 2 X 1 = 720

当n的值超过20时,依靠人力运算已经很困难了,这时就需要借助计算机程序来完成运算了。

下面的Python代码用于求阶乘运算,factorial(n)是求阶乘运算的函数,n是要求阶乘的自然数, n是指自然数1、2、3、4、5、6、……。

同学们可以先不用理解这段代码及factorial(n)函数,在后面的课程我们会详细讲述,在这里主要是理解用编程来实现数值计算的意义。

def factorial(n):fac = 1 for i in range(1,n + 1): fac = fac*i return fac

下图是在Python Shell窗口编写的factorial(n)函数代码,并利用factorial(n)函数分别计算了自然数6、10、20、100的阶乘。从计算结果可以看出,20的阶乘计算结果已经是天文数了,100的阶乘结果有上百位数,是一个非常大、非常大的数了。可见,复杂的数值计算或运算量很大的数值计算都需要通过编写计算机程序来完成计算。

2、数学模型与编程

同学们有没有想过,我们为什么要学习数学,学习数学的目的是什么呢?

学习数学仅仅是为了认识数字,会写会算吗?我相信大多数同学不会赞同我的回答。我们学习数学不只是要认识数字,会写会算,还要能通过学过的数学知识解决现实中存在的问题,将现实生活中的问题转化为数学问题并予以解决。

这就要求对现实生活中的问题进行数学建模,并验证模型的正确性。数学模型的实现与验证一般都是通过计算机编程来实现。

一个完整的数学建模过程主要有三部分组成:

1、用适当的方法对实际问题进行描述;

2、采用各种数学和计算机手段求解模型;

3、验证模型运行的正确性。

同学们来看一个简单的数学建模案例。

问题描述:给出任意一个年份,如2019年、2016年等,判断出该年份是否是闰年?

要解决这个问题,首先要找出年份与闰年的规律,即年份与闰年有什么规律可遵循,然后将规律转换为数学模型。规律已经被总结出来:一是年份可以被400整除的是闰年;二是年份被4整除但不能被100整除的是闰年。这就建立了数学模型,也就是求解模型。

有了数学模型,我们就可以利用数学模型来求解问题,也就是验证模型的正确性。

例如,我们来判断2016年是否是闰年,根据判断闰年的数学模型,首先判断2016是否能被400整除,2016不能被400整除。再判断2016是否能被4整除,并且不能被100整除,我们发现2016既能被400整除,并且不能被100整除,因此2016是闰年。

如果每次都需要人工运算,就比较麻烦了,可以通过编写程序来求解模型。

下面就是根据判断闰年的数学模型编写的Python代码,同学们现在暂时可以先不用理解代这段代码。

def leapyear(year):if year % 400 == 0: return "闰年" elif year % 4 == 0 and year % 100 !=0: return "闰年" return "不是闰年"

下图是在Python Shell窗口编写的leap(year)函数代码,并利用leap(year)函数分别判断2016年、2018年、2019年、2000年是否是闰年。

3、数学实验与编程

用编程可以求解数学模型,解决现实问题。同学们也可以通过编程建立数学实验,帮助同学们提高抽象思维和空间想象能力。

抽象能力和空间想象能力对学好数学非常重要,尤其对小学的同学们来说,是培养抽象能力和空间想象非常重要的阶段。

要提高抽象能力和空间想象能力,数学实验是很重要的方法。

例如:在我们不识数的时候,爸爸妈妈会让我们数指头,数苹果、数人数等等,这就是数学实验。通过数数我们逐渐理解了1、2、3、4、5、6等数字的概念,数字是个抽象的概念。说它抽象,是因为数字是看不见、摸不着的,虽然可以把数字的符号写在纸上,但这个数字符号并没有和我们所熟知的自然界的事物联系起来。

通过数数这个数学实验,同学们就会把数字符号和对应的几个苹果、几个手指、几个人等联系起来,也就自然理解了数字的概念。

现在不少初中要学的数学知识,已经提前渗透在了小学各个年级。例如:各类平面图形的认识、各类立体图形的认识、四边形的周长计算、旋转平移等,也会在这个阶段出现,这些数学知识都需要具备抽象思维和空间想象能力才能学好。

但在一些同学头脑当中,还根本没有建立起抽象思维和空间想象能力,这对于打好数学基础,进而在初中乃至高中学好数学,是十分不利的。

在这种情况下,数学实验就非常重要了。这是就需要借助计算机编程建立数学实验室,用图形、简单动画、计算过程步骤的展现来理解前面所说的数学知识。

给同学们看一个简单的物体平移的动画例子,来理解数学实验对学好数学的重要性。

笑脸当前在A点,现在让笑脸由A点移动到B点。通过动画,同学们很容易理解图形平移的概念。

这种图形的平移动画就是图形平移的数学实验。

同学们学会编程后,可以通过编程实现这样的动画,编写类似的数学实验。

编程是学好数学的重要工具

同学们,编程是学好数学的一个非常重要的工具。

通过编程可以提高人的逻辑思维和抽象思维,而逻辑思维和抽象思维是学好数学的前提。

同学们在学习数学的过程中,可以通过学到的编程知识,来求解和验证数学模型,也可以构建数学实验,将抽象的数学知识通过动画、图形展现出来,在感知和抽象中架起一座桥梁,用于更好地理解数学概念。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/766924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32实现MLX90614非接触测温串口显示(标准库与HAL库实现)

目录 模块选择 编程环境 MLX90614基本原理 通信协议(SMBus通信,类IIC通信) 代码实现 STM32与模块之间接线表 1.标准库实现温度采集 2.HAL库实现温度采集 模块选择 STM32F103C8T6 MLX90614 非接触式红外测温传感器 编程环境 KEIL5&…

了解交换机接口的链路类型(access、trunk、hybrid)

上一个章节中讲到了vlan的作用及使用,这篇了解一下交换机接口的链路类型和什么情况下使用 vlan在数据包中是如何体现的,在上一篇的时候提到测试了一下,从PC1去访问PC4的时候,只从E0/0/2发送给了E0/0/3这是,因为两个接…

手把手GDB调试

确保你的程序有可调式的信息 使用gcc编译一个程序 ,带上一些额外的参数 -o0 -g-o0 :避免编译器优化,使用最低的优化等级,默认的编译选项 -g :生产调试信息 如果你已经有一个工程demo,使用cmake时注意使用Debug模式&…

Java使用poi-tl生成word文档添加超链接及添加多个超链接情况

首先是生成单个超链接情况,很简单 就是通过字符替换就行,但是替换的value格式是 TextRenderData data.put("attachment",Texts.of("文件名").link("http://wenjianlj文件路径.com").create()); 就是在替换的data&#…

spring复习:(39)注解方式的ProxyFactoryBean

一、定义接口 package cn.edu.tju.study.service;public interface MyService {void myMethod(); }二、定义实现类: package cn.edu.tju.study.service;public class MyServiceImpl implements MyService{Overridepublic void myMethod() {System.out.println(&qu…

认识一个失意的李白:如何制作一个人物生平二维码?

电影《长安三万里》的火爆,又一次唤醒了我们对大唐盛世的憧憬和向往。 飞流直下的瀑布、洒落床前的月光、花间独酌的美酒、胡天八月的大雪、越过青天的白鹭、长河孤烟的大漠、钟鼓馔玉的宴会……每每读起,那景象如在眼前。 对于一代又一代读着唐诗、听…

小程序一码跳多端的实现架构。。。

以常用的小程序,微信,支付宝为例, 现在要实现一个二维码,通过微信扫跳转微信小程序,通过支付包扫,跳转支付宝小程序,(其他小程序也如此) 实现思路,H5页面周转…

社区生鲜超市数字化经营怎么做?社区生鲜超市系统一览

社区生鲜超市是一种以货架自助的形式、结合现代超市经营理念,来售卖果蔬、肉类、水产、粮油、熟食等生鲜产品的一种零售形式,通常为小规模的连锁生鲜超市、专营店,主要服务于一个社区、街区等。目前,社区生鲜超市通常拥有较好的区…

【数据结构】二叉树详解(1)

⭐️ 前言 ✨ 二叉树的概念性质 ⭐️ 二叉树链式结构的实现 结构定义&#xff1a; #include <stdio.h> #include <stdlib.h> #include <assert.h>typedef int BinaryTreeDataType;typedef struct BinaryTreeNode {BinaryTreeDataType value;struct Binary…

如何克服Leetcode做题的困境

文章目录 如何克服Leetcode做题的困境问题背景克服困境的建议实践与理论结合切忌死记硬背分析解题思路不要过早看答案迭代式学习寻求帮助坚持与耐心查漏补缺 结论 如何克服Leetcode做题的困境 问题背景 明明自觉学会了不少知识&#xff0c;可真正开始做Leetcode题目时&#x…

用WooCommerce创建一个多用户商城系统和多供应商市场

线上市场是下一波数字化商务。2020 年&#xff0c;超过60% 的线上支出是通过数字市场发生的。人们喜欢从市场上购物&#xff0c;因为它们使购物变得容易。出于同样的原因&#xff0c;企业喜欢通过它们进行销售。通过多用户商城系统和多供应商WooCommerce商城设置&#xff0c;每…

Vue3结果(Result)

可自定义设置以下属性&#xff1a; 结果的状态&#xff0c;决定图标和颜色&#xff08;status&#xff09;&#xff0c;类型&#xff1a;‘success’|‘error’|‘info’|‘warn’|‘404’|‘403’|‘500’&#xff0c;默认&#xff1a;‘info’标题文字&#xff08;title&…

【机密计算-大厂有话说】IBM

什么是机密计算? 机密计算是云计算技术中的一种,通过 CPU 飞地(enclave,飞地可以理解成与世隔绝的世外桃源)隔离处理中的数据。飞地中的内容(处理中的数据)和处理这些数据用到的技术只能被授权的程序代码访问,对于云提供商以及任何人任何事都不可见也不知道。 随着公…

C# 深入理解事件(event)机制

目录 一&#xff0c;引言 二&#xff0c;事件的定义和用法 2.1 同步事件执行 2.2 异步事件执行 2.3 等待异步事件完成 2.4 捕获异常处理中的异常 一&#xff0c;引言 都知道事件的本质是一个多播委托&#xff08;MulticastDelegate)&#xff0c;但对于事件的机制和用法…

【代码随想录 | Leetcode | 第六天】链表 | 反转链表 | 两两交换链表中的节点 | 删除链表的倒数第 N 个结点

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来反转链表、两两交换链表中的节点和删除链表的倒数第N个节点的分享✨ 目录 前言206. 反转链表24. 两两交换链表中的节点19. 删除链表的倒数第 N 个结点总结 206. 反转链表 ✨题目链接点这里 给你…

HDFS与MapResource笔记

客户端向NN请求上传文件 NN回应可以上传 请求上传块,返回DN 所以后面就比较慢 找最近的服务器进行 64K发到1节点,1节点立刻发给2节点,同时1节点自动开始落盘,这里,3个节点是同时落盘的. 因为缓存是在内存中,而持久化是将数据存到磁盘上. 副本节点选择: 1.安全:放不同机架 2.速…

QT中QTimer的循环时间与槽函数执行时间分析,以及在事件循环中触发

目录 当循环时间小于槽函数时间时&#xff1a; 当循环间隔时间大于槽函数时间时&#xff1a; 当存在两个定时器器&#xff0c;其中一个还是间隔100ms&#xff0c;另一个间隔1000ms&#xff1a; 当两个定时器的循环周期大于槽函数执行时间时 当在主程序中添加一个for循环…

13年测试老鸟总结,性能测试-并发用户数估算(超细整理)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 并发用户数&#…

nuxt3初始化项目后配置eslint+prettier

1、安装 eslint 、eslint-config-prettier、eslint-plugin-prettier、prettier arn add eslint eslint-config-prettier eslint-plugin-prettier prettier -D eslint-config-prettier&#xff1a;关闭eslint中与prettier相互冲突的规则。eslint-plugin-prettier&#xff1a;赋…

26.Java 异常

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个…