【转】Seraph 从零开始学编程 第一节 变量
这几天我朋友让我教他编程,我让他看了下我以前写的那一篇基础课,可朋友说看了3天没看懂
我这才发现要想让一个0基础的人学会编程,有些东西一带而过是不行的,而且最近有点时间,所以就对上次写的内容
进行了详细的说明,那么本次课程就以 变量 条件判断 循环 函数 (应用) 4到5节课来给大家进行详细的讲解
我会尽量对每一个细节进行注释和讲解,其中会穿插大量的题型和分析来对大家进行讲解
力求让您从零学会编程
我一般会用print()这个函数来输出我们的结果,在脚本调试的时候一般都用他来检测我们的程序在数据上是否有问题
后面会提到print()的用法
带*的意思是要你死记硬背,没有什么好解释的,最多就是给你举个例子.
就象1+1=2的问题,你问我为什么=2?我只能告诉你是前人定的,那你非要说1堆花生+1堆花生放一起还是1堆花生吗?
好了,开个玩笑,废话不多说,下面开始
第一节 变量
定义变量
我们先来看看如何定义变量
首先说说什么是变量
顾名思义变量就是指在程序的运行过程中随时可以发生变化的量。
1 先看看变量的命名规则
*(1)变量名必须以字母打头,名字中间只能由字母、数字和下划线“_”组成;最后一个字符可以是类型说明符;
*(2)变量名的长度不得超过255个字符;
*(3)变量名在有效的范围内必须是唯一的
我们来看看例子:
strName1,intMax_Length,intLesson,strNo3等是合法的变量名,而A&B,all right,3M,_Number等是非法的变量名。
2 注意:
*(1)变量名是不区分大小写的。如ABC、aBc、abc等都是一样的。
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等。
变量在使用前,必须在代码中进行声明,即创建该变量。
例:
dim a #声明a为全局变量
dim b #声明b为全局变量
上面的也可以写成这样
dim a,b #声明a,b为全局变量,声明多个变量是要用","分开
我们在声明变量的时候也可以对他进行赋值
DIM A=0,B="我" #声明变量A的初值为0,变量B的初值为 "我" (这里提一下,用 "" 引起来的东西都被认定为字符串)
3 变量的类型
每个变量有它的类型。Seraph定义变量的类型常用的有几下几种:
*数值型 a=100
*字串型 a="字符" 用于记录字符串,如果你要记录文字,则可以用它
*布尔型(true/false) a=true(对,正确,成立的意思) 或 a=false(不对,错误,不成立的意思) 当为条件判断时十分有用且节约内存
*颜色型 MyColor=color(225,225,225) 这个变量所记录的就是三原色 红(Red)、绿(Green)、蓝(Blue)的值
在SP 用图形判断来写脚本的时候 用颜色型(color)变量的时候就比较多了
下面我们分别介绍这4种类型的变量
<1>数值型
首先我们让 A=100 #把100的值赋值给变量A
这时候变量A就是数值型的变量了,我们可以对他进行数值运算
看例子
dim a,b
function main #脚本运行的时候要从这里先开始运行,这个是固定格式,大家不要问为什么,因为就是这样规定的,只要记住就可以了
a=100 #把100赋值给变量A
b=200 #把200赋值给变量B
print(a+b) #输出A+B的数值 既100+200的运算结果
end function
上面的例子也可以写成这样
dim a,b,c
function main
a=100
b=200
c=a+b #计算a+b的值,把计算后的结果赋值给变量C
print(c) #输出C的数值
end function
好,我们把上面的例子延伸一下
计算100-50-20的结果并输出
有人说了,直接
a=100-50-20
print(a)
不就可以了吗,这样是可以,不过不是我们要的目的,我们的目的是这样
dim first_num,second_num,third_num,count
function main
first_num=100
second_num=50
third_num=20
count=first_num - second_num - third_num
print("计算结果是:"& count)
end function
再给一道题
下面程序的题目是什么?
dim open_c,close_b,number,No_1_2M
function main
open_c=100
close_b=open_c * 2
number=200+close_b
No_1_2M=open_c + close_b
print(No_1_2m * number)
end function
有的人迷茫了,可以这样理解程序
dim a,b,c,d
function main
a=100
b=a*2
c=200+b
d=a+b
print(d*c)
end function
然后把他们综合一下,就象代数
输出结果是
d * c
(a+b)*c
(100+b)*(200+b)
(100+100*2)*(200+100*2) 这个就是题目了,计算(100+100*2)*(200+100*2)值并输出结果
下面讲一下变量的另一个特性(这个特性其实就是计算机语言的规定)就是当对同一个变量进行重复的赋值的话,这个变量的最终值为最后一次赋值给他的数值
例
dim a
function main
a=100
a=200
a=300
print(a)
end function
输出结果为 300
做个练习
dim a,b
function main
a=100
b=200
a=b
print(a)
end function
结果是多少,对了,是200
下面我们做2个题
1)
dim a
function main
a=100
a=a+a
a=a*2
print(a)
end function
a 的结果是多少?
2)
dim a,b,c,d
function main
a=1
b=2
c=3
d=4
a=b
b=c
c=d
d=a
a=b
b=c
c=d
d=a
print(d)
end function
你能看完程序后就说出结果吗?
<2> 字串型
首先我们看例子
dim a
function main
a="我是中国人!" #将汉字 我是中国人! 赋值给变量a ,这时候a就是字串型变量了
print(a)
end function
输出结果就是:
我是中国人!
对变量赋值给字串,要用双引号引起来
一般情况下,字串型变量只做提示或命名文件用
对于字串型变量可以进行下面的操作
dim a,b
function main
a="我是"
b="中国人!"
print(a & b)
end function
输出结果为
我是中国人!
上面也可以写成这样
dim a,b,c
function main
a="我是"
b="中国人!"
c=a & b #要想输出 我是中国人! 这里用 "&" 符号,他是 (and)"和起来" 的意思,而不能用 "+",c=a+b 这样写是错误的
print(c)
end function
输出结果为
我是中国人!
如果我想命名文件,文件名是用汉字+数字的组合,这时候我们怎么弄?
我们举个例子
dim a,b,c
function main
a="我的文档"
b=10
c=a & cstr(b) #cstr 的意思就将变量 b(数值型变量)转化为 字符型变量,这样同类型的变量就可以进行运算操作了
print(c)
end function
这样输出的结果就是
我的文档10
如果我们想写一些内容到这个名称的TXT文档中该怎么办?
dim a,b,c
function main
a="我的文档"
b=10
c=a & cstr(b) & ".TXT" #如果这里的下一行输入print(c)那么输出结果就是 我的文档10.TXT
WriteTextToFile(c, "我是中国人!") #把 "我是中国人!" 写入文件 "我的文档10.txt" 中
end function
<3> 布尔型
这个没什么好说的,只要记住这个类型的变量只有2个结果,一个是False,另一个是True
具体我会在讲IF Then 的时候来对他进行解释
<4>颜色型
颜色型变量这里只是提一下
在SP里有这个函数
FindImageEx 在屏幕上模糊搜索匹配的图像,并允许设置颜色误差值
例子
FindImageEx("icon.sel", Color(10, 10, 10), 0, 0, 1024, 768, true, x, y)
在屏幕上指定区域内模糊搜索出指定图像的坐标
这里我们只看 Color(10, 10, 10)
意思是 Color类型,其RGB值分别对应三种颜色的误差容差值
误差值为(10,10,10),那么颜色(110,105,90)被认为与(100,100,100)匹配。
这里的匹配是对(100,100,100),误差值为(10,10,10)的话那么这个匹配对象的范围就是
(90~110,90~110,90~110)所以 颜色(110,105,90)被认为与(100,100,100)匹配
如果想了解更多关于颜色方面的知识,就去百度 点 "百科" 搜 "真彩色"里面有详细的介绍
**************************************************************************
print()的用法
print(c) #直接输出C的结果
print(a+b) #他还可以运算(计算a+b的值)
print("计算结果是:"& count) #输出的文字信息用""引起来,后面带变量的话用"&"连接
print(a & b) #同2