Python条件语句与循环语句

1. 条件语句

1.1 if语句

在Python中,一个if语句由一个条件和一个或多个语句构成,语法如下:

if condition:

statement

其中,condition是一个比较表达式,如果结果为True,就执行语句statement,否则跳过语句。

如果条件语句需要两个或多个条件,可以使用逻辑运算符或关键字来组合条件。例如:

if condition1 and condition2:

statement1

else:

statement2

以上示例代码中,如果condition1和condition2的结果都为True,则执行statement1,否则执行statement2。

另外,Python中的条件语句也可以嵌套,即在一个if语句中嵌套另一个if语句。例如:

if condition1:

if condition2:

statement1

else:

statement2

else:

statement3

以上示例代码中,如果condition1为True,则根据condition2的值,执行statement1或statement2。如果condition1为False,执行statement3。

1.2 if-elif-else语句

除了简单的if语句,Python中还提供了if-elif-else语句,可以处理更多种类的条件判断。语法如下:

if condition1:

statement1

elif condition2:

statement2

else:

statement3

以上示例代码中,如果condition1为True,则执行statement1。如果condition1为False,并且condition2为True,则执行statement2。如果condition1和condition2都为False,则执行statement3。

在有多个条件需要判断时,使用if-elif-else语句比使用多个嵌套的if语句更加清晰和简洁。

2. 循环语句

2.1 for循环

在Python中,for循环用于循环遍历序列(字符串、列表、元组等)或其他可迭代对象中的元素。语法如下:

for variable in sequence:

statement

其中,variable是循环变量,可以是任何有效的Python标识符,sequence是要迭代的序列。在每次遍历中,循环变量会被赋值为序列中的下一个元素,直到遍历完整个序列为止。

下面是一个使用for循环处理列表的例子,遍历列表中所有元素,如果元素是偶数,就打印出来:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for num in numbers:

if num % 2 == 0:

print(num)

以上代码输出结果为:

2

4

6

8

10

2.2 while循环

Python中的while循环用于重复执行一段代码,直到条件变为False为止。语法如下:

while condition:

statement

其中,condition是一个比较表达式,如果结果为True,就执行语句statement,然后再次判断condition。如果condition为False,则跳出循环,执行下一条语句。

使用while循环可以实现一些需要重复计算的任务,例如求多项式的值。下面是一个计算n次方的函数:

def power(base, n):

result = 1

while n > 0:

result *= base

n -= 1

return result

以上代码中,base是底数,n是幂次,result是计算结果,每次循环将result乘以base,并将n减1,直到n等于0为止。

3. 实例应用

3.1 计算平方根

使用条件语句和循环语句可以实现一些复杂的计算,例如计算平方根。求解平方根是一个古老而又重要的问题,有很多种不同的方法。下面我们介绍一种简单粗暴但很实用的方法,叫做牛顿迭代法。

牛顿迭代法的基本思想是:从一个初始值开始,不断使用一个简单的公式进行迭代,直到达到一个足够精确的答案为止。

假设我们要求解数a的平方根,我们可以从一个初始值x开始,然后使用下面的公式不断迭代:

x = (x + a / x) / 2

其中,a是要求解的数,x是当前的近似值。这个公式的规律是:每次迭代将当前值的一半和a除以两倍当前值相加,就得到下一个近似值。

实际上,迭代过程会越来越接近真实的平方根。当两个相邻的近似值之差小于一个很小的数epsilon时,就可以停止迭代了,此时的近似值就是所求的平方根。下面是一个求平方根的函数:

def square_root(a):

x = a / 2

epsilon = 0.0001

while True:

y = (x + a / x) / 2

if abs(y - x) < epsilon:

break

x = y

return x

以上代码中,a是要求解的数,x是初始近似值,epsilon是精度控制参数。在每次迭代时,计算出当前的近似值y,如果和上一次的近似值x之差小于精度控制参数epsilon,就跳出循环,返回当前的近似值y。否则将y赋值给x,继续迭代。

下面是一个测试函数:

def test_square_root():

a = 1.0

while a < 10.0:

s = square_root(a)

print(a, s, s * s)

a += 1.0

以上代码中,从1到9依次测试求解平方根的函数。输出结果如下:

1.0 1.0 1.0000000000000002

2.0 1.4142156862745097 2.000000000000002

3.0 1.7320508075688774 2.9999999999999996

4.0 2.0 4.0

5.0 2.23606797749979 4.999999999999998

6.0 2.4494897427831788 6.000000000000003

7.0 2.6457513110645907 7.000000000000002

8.0 2.82842712474619 7.999999999999998

9.0 3.0 9.0

可以看到,我们求解出的平方根很接近真实值,并且误差比较小。

3.2 猜数字游戏

使用条件语句和循环语句可以实现很多有趣的程序。下面我们来介绍一款经典的猜数字小游戏。

假设计算机随机生成一个1到100之间的整数,你需要猜出这个数字是多少,并且在最少的次数内猜中。每次猜测后,计算机会告诉你猜的数字是太大了,还是太小了,直到你猜中为止。

下面是一个简单的猜数字游戏的代码:

import random

def guess_number():

number = random.randint(1, 100)

guess = 0

count = 0

while guess != number:

guess = int(input('Guess the number: '))

count += 1

if guess < number:

print('Too small!')

elif guess > number:

print('Too big!')

print('You guessed the number in', count, 'guesses!')

以上代码中,使用了Python内置的random模块,生成1到100之间的一个随机整数。使用while循环直到猜中数字,在每次循环中根据猜测结果打印出相应的提示信息。最后输出猜测次数。

下面是一个测试函数:

def test_guess_number():

guess_number()

在终端中运行函数test_guess_number可以开始游戏。随机生成的数字每次都不同,所以游戏体验很好。

4. 总结

本文介绍了Python中的条件语句和循环语句,包括if语句、if-elif-else语句、for循环和while循环等常用语句。我们还通过实例介绍了如何使用条件语句和循环语句进行数值计算和编写小游戏。Python的语法简洁、易学易用,有助于程序员更快地实现复杂的任务。

后端开发标签