有趣的世界
在这一章里我不打算讲太多理论性的东西,甚至在之后的日子里,我也尽量以轻松平常的风格来写这一个系列的课程,为了让你们能看懂以及我自己写着轻松。
我最近问了不少朋友学python的目的,有人说为了赶上潮流,为了提高工作效率,甚至小孩子都要学python,不由得让我想起来之前SOHO老板的一条微博。
开始我以为是开个玩笑,没想到现在学这个的人越来越多,python越来越受到关注和喜欢对我来说是一件很高兴的事情,毕竟很早以前用python搞开发时老被同行嘲讽:“你们那玩意性能不行,是个玩具”
玩具不玩具暂且不提,既然有人说这是个玩具,那么我们就用python干一点好玩的事情。
我所理解的python是一门上手比较容易的语言,容易的地方在于它的设计思想或者说作者的思想,用简单点的话说就是用说人话的方式写代码。
怎么理解呢,我写代码举个例子。
以下是一段go语言在屏幕终端打印helloword的例子package main
import "fmt"func main() {
fmt.Println("hello world")
}
对于初学者来说,恐怕他对于以上代码会产生各种迷惑,什么是package main?干嘛用的, 为main后面这个又是什么,为什么不能直接用print打印字符串,要加fmt。诸如此类等等,对于专业的程序员,理解以上代码毫不费力,但是对于没有任何编程基础的人,恐怕还是下面的例子更容易打动人。
以下是pythn的例子
print("hello world")
好吧,这个例子我觉得一点都不极端,python基本是就是用说人话的方式去构建代码,大大解放了人们因为语言特性带来思想上的束缚,从而把精力花在如何构建一个自己想要的功能实现上,而不是去思考这个语言该怎么写,语法是怎么样的,到不是说python就没有语法,而是python到语法已经足够简单,简单到是个正常人稍加培训就能写一些代码的地步,否则也不会有今天这么多非计算机行业的人士来学它了。
我们接着从刚才那个hello word的例子讲起吧。
hello world这个字符串的由来是因为当年贝尔实验室的一位程序员。于1972年,贝尔实验室成员布莱恩·柯林汉撰写的内部技术文件《A Tutorial Introduction to the Language B》首次提到了Hello World这字符串
两年后,布莱恩·柯林汉和丹尼斯·里奇基于B语言写成C语言后,在他们撰写的《C程序设计语言》使用更简单的方式展示Hello World:#include
main()
{
printf("hello, world\n");
}
自此,Hello World成为了电脑程序员学习新的编程语言的传统。
由 布莱恩·柯林汉 撰写的“Hello, world”程序 (1978年)
其实我们通过helloworld这个例子可以了解到 字符串这个概念,简单点说就是它可以是中文,英文,数字或者其他你能想到的任意能在屏幕上显示的内容都可以称为字符串。
当然我这个话不够严谨,除了字符串,编程语言还有很多别的数据类型。比如整型,浮点数,布尔值等等。但是这不重要,以后我会提到。
现在我们只需要知道,字符串在python当中由引号包裹起来,可以是双引号,也可以是单引号。
a = '我是一个字符串123456'
b = " 我也是一个字符串12345678"
这里我定义了两个变量,分别是a和b,并且给他们赋予了不同的内容,这个过程用计算机的术语来讲叫做赋值,分别存储在内存不同的空间随时等待着被召唤(例如使用print函数打印它)
以上这样定义字符串都可以,单引号和双引号的区别回头详细讲,反正别用全角的引号即可,您要是来个
a = “我是字符串”
那计算机就得报错了
记住这个错误提示,字面意思是 语法错误,字符验证失败,每当出现这种错误时,仔细检查你的字符串里是不是有中文空格,引号,tab键之类的。
刚才我们除了用到了print打印一段文字外,还用到了变量定义
就是 a = "我是一个字符串123456"
变量这个概念我想很多朋友应该都有一定的认识,简单的说是在计算机内存中开辟了一块空间存储,哎不对,我说复杂了。
大家暂且理解为变量就是一个代号或者人名吧。比如钢铁侠,如果我们每次描述一个人的时候,总要说他是,出生美国幼年丧父母身高170体重70公斤三围XXX有钱多金帅气全身盔甲高科技无敌打怪能手拯救地球等等。估计说完他的特点后,就该喝水了,没别的,太渴。要是老师上课点名来这么一出估计点完名就该下课了。
于是我们通过人名来定位到某个具体到人,至于这个人的具体特点,那是以后的事情,我们叫人名的那一刻不关心,同样的,我们在程序里使用变量时也是一样,定义变量的时候,它的内容是什么玩意都行,用到的时候再说。
我只需要在用到的时叫它的名字就是了。
同时变量还有一个特点就是它的内容是可以随时变化的,这玩意人名就做不到了,人可以改名,但是身体内容没法换。变量可以做到。呃,让我想想,其实人多身体也可以换,变性嘛。
前天天你是a="直男",去了趟东南亚,今天你是a="少女"
比如我上一刻是
a = "2019快要过去了,我不怀念它"
print(a)
下一刻就是
a = "2020年快要来了,我满18岁了"
print(a)
那么之前的那句 "2019快要过去了,我不怀念它"去哪里了呢?
它被内存丢掉了,内存你们知道吧?所有程序运行时都需要内存,所有数据的呈现都需要在内存中开辟一块空间(哎,我开始说到这个了吧),内存的特点就是速度快,用完就丢,像极了渣男。
a这个变量先后被赋值了两次,第二次的赋值直接将第一次的赋值更改了,第一次的内容也就被内存所丢弃掉了,我们想想,如果它不被丢掉会产生什么情况?
没错,内存被慢慢被这种不释放的变量撑满,机器速度变慢。
大家能理解游戏或者绘图软件为什么耗资源了吗?因为做图像处理时会涉及到大量的数据运算,除了CPU之外还需要向内存申请大量的资源。
关于变量的概念这一块我们暂时讲到这里,变量的命名规则也很简单,不用能系统关键字作为变量名。比如我们开始用到的print,首字母不能是数字,可以是下划线,python也支持中文变量名,其他语言不一定,不要一概而论。
个人建议给变量取名时要言之有物,不要用aa,bb,cc之类的(教学除外)
以下是一些变量命名正确和错误示范
好了,下一章我们正式开始讲Python的基础