看一下下面的例子:
第一条语句判断x是不是等于10,如果是的话,打印`x equals 10!`。另外一个if语句判断x是否等于y,如果是的话,打印`”x equals y!”`. for循环for循环再Python中遍历列表中的项目并且把当前项目赋值给变量。一个列表几乎可以是任何东西的集合! 输入下面的代码,并且像下面这样缩进:
在这个例子中,`range(10) ` 生成了数字0到9的一个列表。for循环一次把范围内的数字赋值给x。就像if语句一样,for循环执行它下面缩进中的每个语句。在上面的例子中,缩进的代码块里面只包含了一个单独的语句。 因为print被调用了10次,对于列表中的每个项目调用一次,这个程序会打印0到9的数字。 函数函数是可以重用的代码块,用来完成某个特定的代码块。比如说,你可以写一个函数用来把两个数相加,或是打印一个字符串。你可以像下面例子展示的一样定义并调用函数。
在运行前,你可以猜猜看这个程序的输出是什么吗?答案见下文: 它会打印出“Hi”三次,因为for循环会调用这个hello函数三次。 缩进的代码块定义了你调用函数时要执行的语句。因为`print “Hi”` 是这个函数里唯一缩进的语句,所以当调用函数时也是唯一被执行的语句,而不是下面的几行。 你可以通过输入结尾带有一对括号的函数名来调用函数,像之前展示的那样,`hello()` 调用了你上面调用的函数。函数有点类似有围墙的花园:它们不能看到它们那一亩三分地意外的世界。这个被称作`变量作用域`。如果你想要让一个函数和外界的数据协同工作,你需要把这些数据传递给函数。 使用`参数`(arguments)可以达到这一目的——不不不,函数之间是不会相互争吵(argue)的! 参数是一个你传递给函数的一个变量;然后函数就可以在内部使用这个参数的值了。 你可以像下面这样声明一个带参函数:
上面的函数定义了两个参数,a和b,放在括号里面,用逗号相互隔开。当你调用这个函数的时候,解释器会吧a和b的值设置为你传入变量的值。 看一下下面这个例子:
在上面的例子中,`add(1,2)` 这条语句把a和b分别设置为1和2。然后函数打印了你传入的两个数的和。上面的例子打印了计算结果——但是如果你想要用这个计算结果做些事情呢?如果你想要把这个函数的结果加上别的一个值呢? 为了做到这一点,你需要给你的函数加一个`return 语句`。 考虑如下代码:
在上面的例子中,你的函数像之前一样把两数相加,但是`return`(返回)语句把两数和传回了函数调用语句。 这意味着上面的`print` 语句得到了add(2,2)返回的值然后把它加1,最后会给你的结果是5。 While 循环while循环和for循环类似。for循环一直进行,直到到达列表的末尾,但是while循环会不定的循环,直到给定条件的值等于False。一个while循环的典型结构是下面这样:
通常,条件变量会在循环运行过程中更新。在解释器中输入下面的程序,来看看这一过程:
这个程序的行为类似于上面的for循环,但是使用了while循环。这是上面程序所做的事情: 1. 给x赋值0 使用while循环需要注意一件事,就是不要创建死循环。 在解释器中输入下面的程序,来看看死循环是什么样的:
哇啊——终端疯了吧?按Ctrl+C来终止程序吧。 刚才发生了什么?如果你仔细看,你会发现while循环的条件,True永远无法变成False,所以这段代码会以CPU能够执行的最快的速度打印数字。 这个故事告诉我们:当写while循环的时候要时刻保持小心,因为你代码里面的无限循环,对于真实世界来讲,不太会是什么好事! 使用True作为while循环的条件是有可能的,尤其是当你不知道要循环多少次的时候。但是你需要一些技巧来退出这个循环。 在解释器中输入下面的代码:
这样就好多了!上面的代码会打印0到10然后退出。这里用到的技巧是break语句,它会直接跳出循环。不论出于何种原因,如果你想要在for循环中提前跳出,也可以使用这个技巧。 捕获用户输入Python中一件很酷的事情是可以非常简便的以文本的方式获取输入用户输入。输入是指任何从外部提供给程序的数据,比如文本或者是其他会影响程序行为的指令。 在你的解释器中输入下面代码:
上面的代码首先会让你进行输入;一旦用户输入了问题的答案,程序会把它赋值给name变量。这一过程完成后,程序会连接字符串“Hello,”和变量name 的内容。 raw_input()函数是Python内建函数;它完成打印从控制台输入字符串的工作,捕获用户输入的文本,然后把它们作为函数值返回。 利用上面捕获输入的技术,你可以创建简单的计算器。在你的解释器中输入下面的代码:
首先,你捕获了两个用户输入的值然后把它们分别赋值给a和b。然后你把他们转换成了整型并相加。 为什么要有转换这一步呢?仅仅是因为解释器中所有的输入都是以字符串形式进行的,而你是希望吧两个整数的值相加。 如果你不转换这些字符串为整数,你觉得会怎样呢?没错,程序会连接你输入的字符串,这并不是你想要的! 导入在我们深入研究导入之前,介绍一下Python的模块是必要的。一个模块,是一组Python函数的集合,你希望在不同的程序中重用它们。导入一个模块等价于从一个模块中把所有的代码取出来放到你自己的程序里面所以你可以在任何时候去使用他们,但是又不需要去剪切和复制,哪怕是一行代码! 在Python社区中,存在着大量的模块,但是目前来讲,你仅会接触到随机数模块(random module)。 要导入模块,在解释器中输入下面的代码:
一旦导入了模块,你就可以像下面这样使用它了:
这将会打印0到100间随机的整数;很直观的东西。到目前为止你已经学到很多知识了,足以把他们揉在一个小程序里来练习一下你目前学到的知识了! |