python编程小游戏的代码_python游戏代码简单不过25行

python编程小游戏的代码_python游戏代码简单不过25行Excel 的 VBA 现在还算是办公利器吗?非计算机专业学生,但是有少量数据处理任务,对计算机也有兴趣,本打算学VBA,但是有计算机专业的告知用处不大,不如直接学习更强大的Python等脚本,由此两个疑问:1. VBA是否已过

Excel 的 VBA 现在还算是办公利器吗? 非计算机专业学生,但是有少量数据处理任务,对计算机也有兴趣,本打算学VBA,但是有计算机专业的告知用处不大,不如直接学习更强大的Python等脚本,由此两个疑问:1. VBA是否已过气而不值得新人去学习了?2. Python等是否能方便高效地去处理、分析Excel的统计数据呢?谢答。

在编程语言的学习里,循环真是个让初学者又爱又恨的功能,爱是因为它真的很有用,可以完成很多机械化的操作,恨是因为它有些不太容易入门。所以我这写了个文章,告诉大家怎么能比较容易的理解循环语句。

从“偷懒促进社会进步”说起,VBA的循环流程真的好用

一直以来,都有一个比较特立独行的观点,是说“偷懒或懒惰促进了社会的进步,科学的发展”。这个观点乍看起来有点离经叛道,但是你品,你细品,还是可以讲出些道理的。

原始的人类因为懒的每次渴了都去河边喝水,所以发明了水桶,提一桶就可以少走好多次路;因为懒的绕远路过河,所以发明了船;因为懒的走路,所以发明了汽车;因为懒的用手算,所以发明了计算器和计算机……

其实这个观点的矛盾是在于离经叛道观点里的“懒”和第二段例子里的“懒”是两个状态。平时最常见的概念里的懒是身体和思想上都很懒,所以才会让人拖延、低效、一事无成。但是让社会进步例子里的懒,却只是说的身体上懒,但是思想上确是活跃的、有创造力的,把偷懒的需求转变为创造性的行动里,然后就可以一劳永逸,可以高效快速的完成工作。

一、我学VBA的故事

我学习VBA的目的最开始其实也是为了偷懒,真的,就只是这个目的。当时刚毕业,在会计师事务所工作,那时候的审计软件还不太发达,所以有些小众的财务软件取不到数据,就只能痛苦的手工做工作底稿,比如管理费用底稿是这样的:


python编程小游戏的代码_python游戏代码简单不过25行

需要在财务软件里导出12份每月的科目余额表,然后把三五十个明细科目的数据一点一点的填到这个表上,填完半天就过去了。面对这个情况我挺痛苦的,于是就开始琢么,然后开始自学了VBA。利用空闲时间陆陆续续琢么了一个周,把VBA写好了,只需要一次性导出科目的凭证序时账,整理一下格式,然后用代码就可以直接生成底稿数据了。

填完底稿还需要审核异常情况,比如需要看一下同一个科目1-12月有没有金额变化非常大的情况,检查一下异常大的月份是什么原因引起的,是否正常。然后又继续琢么代码,然后就可以自动把超出本科目平均值30%的单元格标记成红色,就不用靠人眼在几百个数据里查异常了。

写好代码之后,再有遇到没法用审计软件的项目,我的底稿很快就能完成了,于是可以做些其他的工作,比如把凭证查的细一点,比如摸会儿鱼~~~

自此,我开始尝到用VBA偷懒的甜头,然后随着工作内容的拓展,啄么着写了各种实现偷懒的功能的代码,就把VBA掌握的越来越精通了。

二、什么样的工作能偷懒

那什么样的工作才能偷懒呢?这个要从计算机和人脑的计算方法上的不同说起了。

大脑的计算是模糊计算,能非精确、非线性的处理数据,比如我们日常中会用到“大约、一会儿、漫长、非常小”这样的度量词,而不是确定的5分钟、30米这样的单位。举个例子,说到7000㎡你能意识到这是多大吗,如果换成大约一个标准足球场那么大是不是概念就清晰多了?因为生物的发展历史里就不需要精确地数字,只需要一个大概的标准就可以了,所以在这几亿年的历史里就练就了厉害的模糊计算的本领。

而计算机的计算原理就和人脑不同,从发明计算机开始就是对0、1进行运算,所以计算机的计算是精确的,有条理的。计算机可以很容易的对比较大的数字进行数学运算,也可以对各种精确地逻辑条件进行运算,计算机可以很容易的准守逻辑规则,在某个情况下执行特定的运算过程。

其实大家别小看人脑,模糊计算也是很厉害的,计算机在这方面也很难比得上人脑。比如说图像识别,让计算机来识别一张森林背景里的一只猫一直都是件挺难的事。近些年来,随着计算能力的增强以及各种算法的改进,计算机终于可以做出些图像识别的事了,但是这个需要很厉害的编程基础,而且结果还经常出错。但是大脑就很容易识别到这只猫,因为动物的发展历史里就锻炼了脸部和身体识别的本领,没锻炼出快速识别面部本领的动物可能因为来不及跑,都被天敌吃干净了。比如你看这些图像不像脸:


python编程小游戏的代码_python游戏代码简单不过25行

说起来模糊计算这么厉害,所以其实大脑也挺累的,而且当大脑反复的干一件事情时就会特别疲惫,举个简单的例子,叫做语义饱和:你有没有这种感觉,一个字在短时间内看的次数太多就好像不认识了?比如我在写这篇文章的时候就有点不认识“懒”这个字了。

如果不想重复的机械化劳动,那该怎么办呢?把它交给计算机就好了嘛,除非散热不好热到死机,计算机是不会喊累的。

所以,什么样的内容交给计算机最合适呢,上面其实已经写出来了,总结一下:当一个工作属遵循严格的逻辑条件,进行大量的机械化的精确运算过程,就适合交给计算机。

四、编程的流程

在各种编程语言里,都有最基础的三个流程:顺序、选择(或者叫分支)、循环。

顺序最容易理解,就是一直按照特定的步骤执行各种运算和操作:


python编程小游戏的代码_python游戏代码简单不过25行

选择也比较容易理解,满足某个逻辑关系时执行某些语句,不满足条件时执行另外的语句:


python编程小游戏的代码_python游戏代码简单不过25行

循环语句稍微复杂那么一丢丢,但也不是很难,就是在满足某个条件下反复的执行某些语句,直到不满足这个条件,则跳过循环部分,继续执行后面的语句。下图橙色部分就是循环:


python编程小游戏的代码_python游戏代码简单不过25行

五、VBA里的循环

今天文章的重点就是要讲这个循环流程啦,就是它可以让计算机进行成百上千万次重复工作。循环有个逻辑条件,就是在什么情况下循环,在什么情况下不循环,这个逻辑条件是必须有,并且要特别注意写完善了,否则一直重复一直重复没有尽头,计算机就停不下来啦,这也是俗称的死循环。

VBA的循环大的种类有两种,一种是由Do…Loop循环,另一种是For…Next循环。

Do…Loop循环用起来比较自由,有一个用于判断是否执行循环的While语句,只要满足逻辑条件时真值就能进行循环。但是我不太推荐在Excel里使用这个语句,因为并不是所有的自由都是好的,在写代码的时候,这种自由有可能让你的代码进入死循环。因为While语句里必须是一个逻辑判断语句,而且这个逻辑判断需要在循环的代码进行改变,什么时候继续循环,什么时候退出循环的变化都需要做好规划并写出完善的代码,所以万一没写好,就是个死循环。

所以,我自己有一门Excel For VBA课程,在课程里就只教了For…Next循环,都没怎么提Do…Loop循环,因为For循环真的和Excel才是绝配。

六、细说For循环

For循环里细分又有两种,一种是对一个数字变量在一定范围内的循环,另一种是对一组对象进行循环,本质上其实差的不大,两种形式其实都是在对有限个内容进行循环,不太容易出现死循环。

1、数字变量循环

第一种数字变量的循环,一般写成 For i = 1 To 10 Step 2 类似这样的形式,它的含义是现在有一个变量i,规定它的起始值是1,每运行一次循环增加2,当它在10以内的时候,进行循环,超过10了就停止。所以当第一次运行循环里的内容时,i的值是1;循环一圈,第二次运行的时候i就变成了3,再下一次是5,一直到9还继续执行循环;再下一次i变成了11,超过范围,就不循环了。这样,我们就进行了有限次的循环,不容易形成死循环。


python编程小游戏的代码_python游戏代码简单不过25行

另外,For循环还有个很完善的设置,当你的内容写错了,比如写成For i = 1 to 10 Step -2这种,理论上i会越来越小,1、-1、-3、-5……永远也不大于10怎么办?其实它根本都不运行循环呢,直接帮你把整个循环跳过去了。

另外,为什么说For循环和Excel是绝配呢?因为Excel里的数据是有限的,而且都有行号列号啊,比如我们很容易把变量i当成是行号,对我们想变更的数据的每一行进行操作。比如我想对B2:B200区域进行操作,就写成For i = 2 To 200,然后就可以用Cells(i,2)来对每个单元格进行操作啦(当步进长度是1,也就是Step 1时,可以省略Step 1)。

用VBA操作Excel的时候,我们进行循环操作大都是这样有序号的目标,比如有行号、列号、次数、日期等等,都是一个有规律的序列,这个时候用For循环的数字循环方式都很好用!。

2、对象变量循环

先说明一下这个“对象”,首先,它不是指的男女朋友……咳,扯的有点远,拉回来说,对象可以理解为就像一个物体,它有各种各样的属性。比如一个铅球就是一个对象,它有体积、有重量、有温度、有颜色等等各种不同的属性;Excel里也有许多对象,比如每个单元格都是个对象,它有值、有字体、有背景颜色、有边框、有地址……工作表也是对象、工作簿也是对象,插入的图片和表格也是对象。

了解了对象之后再看这个对象变量循环,我再举个生活中的例子:一位超市的员工,现在要对一箱西瓜挨个称重,提前贴上标签方便顾客购买时可以直接拿走。那这个过程用编程的语言思维怎么写呢:

        对这个箱子里的每个西瓜进行循环
            对现在拿出来的这个西瓜进行称重
            打印称重标签
            贴到这个西瓜上
            把这个西瓜放到展台上
        拿另外一个西瓜

python编程小游戏的代码_python游戏代码简单不过25行

VBA代码的写法就和刚刚的这个例子很像,比如我要对A2:D10区域的每个单元格进行操作:

我们有了个【单元格的集合区域A2:D10】——【一箱西瓜】

然后我们对这个集合里的每个【单元格】——【一个西瓜】都拿出来进行操作

先给这单独的单元格起一个简单的名称【Cel】——【这个西瓜】方便引用

然后对这个单元格写代码进行【各种操作】——【称重、打标签、放到展台】

完成这个单元格的操作后继续操作下一个单元格【Next】

把上面这个过程变成代码就是这样的:

        For Each Cel in Range("A2:D10")
            对Cel对象进行各种操作的代码
        Next

(吐槽一下,写代码可是比写文字描述要简单多了呢)

小结

VBA里的For循环的两种写法基础内容就是这样的啦,其实并不难是吧,通过简单的代码,我们就能完成成千上万次重复操作啦,把我们从枯燥的机械化劳动中解放出来,大大的提高了我们的工作效率!

当然,前面介绍的内容还是比较简单的,等把简单的基础练会了,再配上循环的嵌套、选择流程等等内容,就可以实现更多更复杂的内容啦!

大家如果对VBA感兴趣,想进一步学习,可以联系我~

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/13493.html

(0)
上一篇 2024年 5月 15日
下一篇 2024年 5月 15日

相关推荐

  • printf在哪个头文件里_printf在什么头文件里

    printf在哪个头文件里_printf在什么头文件里C语言printf()详细描述目录 函数描述参数format返回值函数printf //头文件intclude “stdio.h”描述将格式化数据打印到标准输出,按格式指向的 C 字符串写入标准输出 (

    激活谷笔记 2024年 5月 28日
  • redis面试题目_redis集群面试题

    redis面试题目_redis集群面试题Redis 常见面试题(2020最新版)阶段汇总集合:001期~180期汇总,方便阅读(增加设计模式)概述什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BS

    激活谷笔记 2024年 5月 13日
  • 计算机组成部分及其作用_计算机组成部分及其作用是什么

    计算机组成部分及其作用_计算机组成部分及其作用是什么计算机网络由哪两部分组成,各自的作用是什么?云数据观察2021/12/20 15:36通过云数据解析,分享互联网企业最新动态1、计算机网络分成通信子网和资源子网两部分。通信子网的功能:负责全网的数据通信;资源子网的功能:提供各种网络资源和网络服务,实现网络的资源共享。2、网络硬件系统和

    2024年 5月 26日
  • 二叉排序树查找序列_二叉排序树查找序列不可能

    二叉排序树查找序列_二叉排序树查找序列不可能数据结构一、单项选择题1.假定对称矩阵按行序为主序,顺序存储下三角元素到一维数组SA[1..n(n-1)/2]中,对下三角中任一元素aij在一维数组SA中的下标k值为().A.i(i-1)/2+j-1B.i(i-1)/

    激活谷笔记 2024年 5月 25日
  • ds1302有几个电源引脚_ds1302的引脚图

    ds1302有几个电源引脚_ds1302的引脚图基于CW32实时时钟DS1302应用1. DS1302是一款集成了实时时钟(RTC)功能的芯片。RTC是一种能够精确测量和跟踪时间的电子设备,可以提供准确的日期和时间信息。DS1302实时时钟芯片由Maxim Integrated(美信半导体)生产,具有以下主要特点:①时钟精度:DS1302采用32

    2024年 5月 20日
  • spicy歌词大意_spoity歌词

    spicy歌词大意_spoity歌词Sunny Lukas Spicy歌词完整版[00:00.000] 作词 : Sunny Lukas/董唧唧[00:01.000] 作曲 : Sunny Lukas/董唧唧[00:06.52]编曲:Sunny Lukas[00:09.46]girl i know you lik

    激活谷笔记 2024年 5月 24日
  • python面向对象和面向过程的区别和联系

    python面向对象和面向过程的区别和联系●问题:为什么创建__init__或者别的类函数时需多加一个self变量?答案见评论区,期待你的不同见解。一、面向对象vs面向过程用一个经典的问题“如何把大象装进冰箱”阐述二者的区别●面向过程思维:把大象装进冰箱需要三步:【1】打开冰箱【2】把大象装进去【3】关闭冰箱●面向对象思维:“万物皆

    激活谷笔记 2024年 5月 18日
  • 哈夫曼树编码数据结构_哈夫曼树编码数据结构课程设计答辩ppt

    哈夫曼树编码数据结构_哈夫曼树编码数据结构课程设计答辩ppt数据结构-哈夫曼树(C语言看了就懂教程)1.概念:哈夫曼树(Huffman Tree)是一种常用的数据结构,用于实现数据压缩和编码。它是由美国计算机科学家David A. Huffman于1952年提出的,被广泛应用于

    2024年 5月 24日
  • 系统接口设计怎么写_系统间接口设计

    系统接口设计怎么写_系统间接口设计系统接口设计说明(接口详细设计)本篇文章给大家谈谈系统接口设计说明,以及接口详细设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。今天给各位分享系统接口设计说明的知识,其中也会对接口详细设计进行解释,如果能碰巧解决你现在面临的问题,别忘了本站,现在开始吧!本文目录一览:1、接口设计怎么写?2

    2024年 5月 31日
  • 堆栈平衡 字节对齐怎么设置

    堆栈平衡 字节对齐怎么设置开发环境:MDK:Keil 5.30开发板:GD32F207I-EVALMCU:GD32F207IK对于我们常用的桌面操作系统而言,我们在开发应用时,并不关心系统的初始化,绝大多数应用程序是在操作系统运行后才开始运行的,操作系统已经提供了一个合适的运行环境,然而对于嵌入式

    激活谷笔记 2024年 5月 18日
  • Rider激活2024.1.2(JetBrains PhpStorm 2024.1中文激活成功教程版 含汉化激活教程)

    Rider激活2024.1.2(JetBrains PhpStorm 2024.1中文激活成功教程版 含汉化激活教程)

    2024年 6月 7日
  • aspnet网站开发源码

    aspnet网站开发源码ABP已经成为了.NET开发界的“网红”项目,如果你还没有听说过,那说明你在.NET界浸染不久,但今天你终于知道了。据国际知名商业应用发现平台GetApp公布2020年最佳应用开发工具排名:ASP.NET Zero已在此列表中排名第一,总评价

    激活谷笔记 2024年 5月 19日
关注微信