logo
首页
标准版
您当前访问的是预览版网页,若要正常使用功能请戳我前往标准版
管理员

哈罗,各位,又见面了。因为前一阵子自己比较忙,所以第二课来得比较晚,大家有木有饥渴难耐啊?@146-想我就别憋着啊~

那么下面继续我们的Python旅行~

记得上一课里面,我曾经在最后提到了Python的Shell,也就是命令行界面(没看过上一课的童鞋请移步传送门)。不知道各位都安装了木有,下面要进入课程了。

Part One 算法

首先我们来讲讲算法的概念,我尽量抛开书本教条,用最直白的语言去阐述这个问题。所谓算法,就是计算机程序设计的一种方法。简单地说,就是要告诉计算机它要做什么事。计算机可以做很多事情,但是计算机自己并不会思考,所以需要人类用计算机能够懂的语言来告诉它,让它知道它该干嘛。算法这个名词看起来很高深,其实也就是程序设计的另一种说法而已。我们想要让计算机完成一件任务的方法不仅仅只有一种,可以有很多种方法。通过不同的代码实现不同的过程和步骤,最终达到同样一个目的,这就是算法的含义。精通算法的人可以用10行代码完成其他人用100行代码完成的事情,而且效率更高,这就是算法。

Part Two 数字和表达式

我们知道 Python Shell 同样可以被称作“交互式Python”解释器,你可以把它当作一个高级计算器来使用:

>>> 1+1

2

答案很显然是2。你如果愿意的话,当然也可以替换成其他的数字:

>>> 1234567+7654321

8888888

上面这些都只是加法,聪明的童鞋们一定想到了其他的方式:

>>> 2121-1212

909

>>> 11*22

242

当然还有减法和乘法,下面我们来看看除法:

>>> 1/2

0

你会发现,怎么是0呢? 一个整数(不包含小数部分的数)除以另外一个整数的时候,计算的结果是小数部分被省略掉了。虽然有时候我们需要这样的功能,但是在这里我们只要进行最普通的除法就好了,那要怎么做呢?我们需要使用实数,即包含小数点的数,而不是整数进行运算。实数在Python中被称作浮点数(Float-point Number):

>>> 1.0/2.0

0.5

怎么样,得出正确的结果了吧? 这样写也是可以的:

>>> 1.0/2

0.5

>>> 1/2.0

0.5

也就是说,只要在运算中有一个是浮点数,运算结果亦为浮点数。如果只是希望让程序执行普通的除法运算,那么可以程序前面或者在shell里面执行以下语句:from __future__ import division (注意句中的空格和future是前后各两个下划线),这样就合理多了:

>>> 1/2

0.5

但在这个时候,可以使用双斜线进行整除操作:

>>> 1//2

0

除了这些,我还想给各位介绍一个非常有用的运算符“%”,这是取余预算符:

>>> 1%2

1

>>> 10%2

0

>>> 19%5

4

看出来了么?这个运算符会将余数取出来,如果想设计一个程序,为每10秒钟检查一次端口是否被占用,那么就可以使用%10作为参数,如果结果为0,那么就执行检查操作,就这么简单。这一小节最后一个运算符是什么呢?那就是幂运算符:

>>> 2**3

8

>>> 4**3

64

看出来了么?相信你一定明白的。

Part Three 长整型数

如果你用Python处理一个非常大的数,你会看到下面的样子:

>>> 100000000000000000

100000000000000000L

嗯?末尾多出来了一个L。其实在Python中,普通数和长整型数的写法是一样的,唯一的不同仅仅是末尾多了一个L,在这个例子当中,Python把用户输入的数自动转换为了长整型数。长整型数与普通数是可以相互混用的,比如:

8989879587239L+6317

8989879593556L

Part Four 变量

变量是什么?如果你数学基本功不错的话应该很快可以回答出这个问题。其实计算机中的变量跟数学中的变量相差不多,比如说,你希望x代表的值为5,那么只需要这样写:

>>> x = 5

这个过程被称为赋值,赋值就是将5绑定到x上面,接下来就可以使用赋值后的x进行计算操作:

>>> x*8

40

很简单。当然变量可以是多个字符组成,比如:

>>> geeks = 5

>>> geeks ** 3

125

没有赋值的变量是无法运行的。

Part Five 获取用户输入

当我们在写程序的时候,并不一定要知道变量的值是多少。当然,程序最后也会知道变量是多少(这句话有点绕,不用太过于在意。),也就是说不赋值的变量也能运行,矛盾吗?或许是这样的,请往下看。

因为我们编写的程序是让其他人来使用的,我们不知道用户会提供什么值,所以我们需要通过用户所提供的值来赋予变量,在这里我们可以使用input函数,当然更多关于函数的东西我在后面的章节中会继续介绍的。

>>> input("Please type an number: ")

Please type an number: 1

1

shell 执行了input语句,并将字符串“Please type an number: ”打印出来,此时输入1,按下回车执行,结果就是我输入的1。这个例子似乎不太具有实用性,请看下面的例子:

>>> x=input("x= ")

x= 2

>>> y=input("y= ")

y= 3

>>> print x*y

6

这一段语句其实已经可以作为一段完整的程序了,后面输入的值是用户提供的,我们并不需要知道用户会输入什么值,程序会知道的。现在理解我上面的意思了吧?顺便提醒一下,指令中的符号应该在英文状态下输入。

基本表达式这一课内容较多,我们将分为两课来完成。这节课讲的东西,大家一定要好好掌握哈。把代码亲自输入一遍,而不是简单的copy,会有不一样的理解的。

凯文,不断提供优质资源!

该贴已经同步到 kevinyzd的微博

又木桑

本帖最后由 又木桑 于 2013-2-24 22:14 编辑

写得很好, 学习ing. 谢谢楼主.

@@13!!没有后续了么 微博也木有搜到.. TAT... 我要抱大腿啊...

冰糕_要忘记

想复制到TXT然后在手机上慢慢看的。。555有图片就不好看了啊。。

wzy931220

。。怎么找不到后面的了。。

ixu2

不错啊,简单易懂 。期待

馒头馅包子

多谢啦,感觉比之前看过的变编程书容易理解的多

管理员

零柒夭夭 发表于 2011-7-28 10:21

大蟒蛇威武

应该都用过它写的程序吧?

管理员

尕丁冂學 发表于 2011-7-28 00:09

哟湿>~<

好简单嘛www

#33!

零柒夭夭

大蟒蛇威武

尕丁冂學

哟湿>~<

好简单嘛www

继续学下去>w<

楼主君要加油哦w

长梧

第一次接触编程语言,原来高中数学那一部分就是干这个的,感觉还是挺容易接受的,期待下一课@125#

管理员

音乐会 发表于 2011-7-12 21:45

嗯 很容易懂~~和其它语言相比 总觉得有点奇怪~~变量给啥类型就变啥类型的。。。 ...

后面会稍稍有些复杂,不过相比C语言神马的,这个会变得非常简单。

管理员

tianyaruichang 发表于 2011-7-12 21:14

这个很好,但是我看不懂表示

并不是很难懂啊。。我觉得我写得挺直白的

蔡蔡

这个很好,但是我看不懂表示

吕肉至

kevinyzd 发表于 2011-7-12 19:32

不止是数字,是不是什么地方写错了?

没写错~我就说我这么天才这么可能会犯写错这次低级错误

是设置错了,没有加上识别UTF-8~~♪(^∇^*)

管理员

NELcanto 发表于 2011-7-12 06:58

只能print数字???尝试了各种失败……投降状

不止是数字,是不是什么地方写错了?

吕肉至

原来是我设置问题~~~V5~

<<01>>>