什么是计算机语言?专家用Python实战回答,从一个过程的模拟开始
off999 2024-11-09 12:50 26 浏览 0 评论
计算机语言,本质上是数学语言的工程化。
那么,什么叫数学语言的工程化?数学语言具有非常高的抽象性,当前的计算机没办法理解。那么我们需要一个中间语言来做一个中介,并且这个中介使用起来非常方便,对数学的要求也不高,这样的中介,就是工程化。
Python语言中,有很多的语法,我不想多教科书式的去讲。我喜欢带着问题迭代。好的,那我们就开始我们的问题:
在一群人里面,高低不同,我想让最高的那个家伙,走到最前面来,而且是沿着他的位置,穿过每个人走到最前面,当与某个人重合时,被重合的人就后退到最高的人的位置。就这样一个过程,我们用计算机模拟一下。
1、用一个东西记录高矮,变量
首先我们要有一个东西来记录高矮。
在计算机里称为变量。你懂的,就是和初中那个变量x是一样的。只是名字你可以随便起。
在python里,这个实在是太简单。
比如高度是160单位cm。
下面那个print就是打印出来的意思。
运行一下,
显示出来了,160.
多简单啊。
在python里,变量是可以随便设置的,你大可不必担心出错。在错误中学习是最快的方式。出错了怎么办?万能搜索引擎可以帮助你。
2、建立一个一群人的高矮的数据,列表
我们是模拟一群人的高矮的,个数少我们可以一个一个的定义。但是多了呢?
Python给了一个东西叫列表。
列表就是把一堆乱七八糟的东西放在一起的一个小组。
这个是一个用中括号括起来的一堆东西, 如
[身高1,身高2,身高3,身高4,衣服,香蕉]
比如,我们设置有10个人的身高列表,可以这样定义
Pycharm用灰色的提示,你用中文不好吧,毕竟这个语言是外国人写的。而且中文编码比较繁琐啊!
下面我们就用字母来替代吧!下面我们用heights替代一群人的身高。
所有存储在变量里的内容,我们有一个比较常用的称谓,叫数据。
本质上程序有两部分组成,数据和算法。
以下是一些操作。(补充一下,python的注释是#开始的一行一行的)
按顺序,列表从第一个到第十个,指标从0-9,取值
这里使用了print的用法,里面的参数用逗号隔开,分别显示。如果是字符,则用单引号,或者双引号,或者三个引号包围。
这样操作似乎太麻烦,这里我们介绍一下for循环
for i in 列表:
操作
这样的语法。
特别说明,上面的“操作”前面是一个tab的位置,或者四个空格。这个是python特有的间隔方式,用来表示不同层级之间的区分。如果“操作”是在for循环下的,所以操作要比for多一个间隔,这个间隔叫缩进。
for 循环,就是把列表中的值一个一个的取出来分别进行“操作”运算。
例如上面我们说的显示列表中的值,
运行后是这样的
好了,这样我们就建立了一个一群人的高矮的数据heights。
详细的操作,大家可以搜索,这里不做深入的探讨,我们只介绍到做到我们的模拟需要的最小知识点。
3、找到那个高个子,并且找到这个人的位置
这是我们遇到的第一个算法。如果是两个人,我们怎么做?
(1)先比较谁高,这个简单,数字大的就是高个子,这个计算机会
(2)记住这个人的位置
(3)把这个高个子和其他的人比,再记住高一点的那个家伙的位置。
如果是一群人呢,我们怎么做?
(1)第一个和第二个比
(2)记住高个子的位置
(3)高个子的和第三个比,记住高个子的位置
(4)继续下去
大家可以考虑一下怎么完成。
可以先用伪语言描述一下。
什么是伪语言?
伪语言就是不管你用什么语言,可以描述清楚操作就可以的描述方式。
我们使用另外一种,我们先准备一个和heights一样大小的列表,把所有的值都设定为0.
这里介绍两个列表操作。
(1)列表的乘法
假设另一个列表是影子,名字叫shadow
shadow = [0] * 10
这样我们就获得了一个含有十个0的列表shadow
(2)获取列表是一串0-9的数字
有一个函数range(10)
不过,这个不是列表那么简单。但是估计这样想吧,可以认为是类似列表的东西。
我们继续我们的模拟,先用伪语言把要做的事说清楚。
(1) 定义一个变量height,用max函数算出最大的值赋值给height
(2) 定义一个tall_position 用来存储位置
(3) 用for循环,取出所有的人的高度比较
for position in range(10):
如果heights[position]=height
tall_position = position
否则,不变
这样我们就找到了那个最高的人在哪个位置。
代码如下:
解释一下,
Line1:就是我们的一群人的高度列表heights
Line2:用了max函数计算了heights中最大值
Line3:定义了一个tall_position用来存储位置
Line4-8:做了一个for循环
Line5-6: 判断position位置的人高度是不是和最高的height一样高
如果一样高,就把这个位置记录下来。
Line7-8: 反之,pass,这个就是表示什么都不做。
这里使用了if 。。。else。。。函数,使用方法就如上面代码一样。
Line9:打印结果
4、让高个子的人按顺序从他原来的位置移到第一个位置。
回顾一下问题:
在一群人里面,高低不同,我想让最高的那个家伙,走到最前面来,而且是沿着他的位置,穿过每个人走到最前面,当与某个人重合时,被重合的人就后退到最高的人的位置。
我们知道现在的位置是tall_position的位置。我这里定义的向前,是指向数字小的地方。也就是从tall_position移动到0.
伪语言:
开始
Shadow =heights
for position in range(tall_position):
heights 列表的tall_position-position-1位置的值
赋值给Shadow列表tall_position-position位置的值
height值
赋值给Shadow列表tall_position-position-1位置的值
打印出列表
结束
这里涉及到交换,如果我们有shadow这个列表了就很简单了,只要做两次赋值就可以了shadow[tall_position-position]=heights[tall_position-position-1]
shadow[tall_position-position-1]=height
代码如下:
看一下运行结果:
这就是我们预想的!
那么这个模拟我们就完成了。
这里有一个问题,我们继续在程序下面打印一下shadow和heights的值我们比较一下:
居然一模一样。说明什么问题?
大家思考一下?
说明列表在赋值的过程中其实是一个对应。也就是说,我赋值给了shadow,但是shadow不是一个新的列表,只是heights列表的另一个名字,或者说影子。影子是跟着主人变的。
备注:移动过程模拟材料:变量赋值、列表赋值、for循环、if 判断、max函数、range函数
相关推荐
- 安全教育登录入口平台(安全教育登录入口平台官网)
-
122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...
- 大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)
-
大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...
-
- 哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
-
要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...
-
2026-02-04 09:03 off999
- 电信宽带测速官网入口(电信宽带测速官网入口app)
-
这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...
- 植物大战僵尸95版手机下载(植物大战僵尸95 版下载)
-
1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...
- 免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)
-
1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...
- 2025世界杯赛程表(2025世界杯在哪个国家)
-
2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...
- 下载搜狐视频电视剧(搜狐电视剧下载安装)
-
搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...
- 永久免费听歌网站(丫丫音乐网)
-
可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...
- 音乐格式转换mp3软件(音乐格式转换器免费版)
-
有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...
- 电子书txt下载(免费的最全的小说阅读器)
-
1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...
- 最好免费观看高清电影(播放免费的最好看的电影)
-
在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...
- 孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)
-
要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...
欢迎 你 发表评论:
- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
