Python学习日记-循环语句

本章目录

  • Part One:while循环
  • Part Two:for循环
  • Part Three:continue和break
  • Part Four:else语句

循环结构可以使得程序在满足某个条件的情况下,反复执行相同的代码,比如计算1 + 2 + 3 + ... + 100就可以用循环来操作。

while循环

while循环就是操作循环的方法之一,它的语法格式和if语法格式极为相似:

while 循环条件:
    # 循环体

Python会循环执行循环体,直到循环条件不满足为止。比如,我们计算1到100的和:

x = 1
total = 0
while x <= 100:
    total = total + x
    x += 1
print(total)

结果自然是:

5050

同样的,我们也可以用列表来操作:

# Python提供一个range()函数,可以生成一个整数序列,range(101)就是0 - 100
# 再通过list()函数可以转换为list
numbers = list(range(101))
total = 0
while len(numbers) > 0:
    # pop(索引)是删除指定位置的元素,并返回该元素的值
    total = total + numbers.pop(0)
print(total)

for循环

Python中的for循环跟Java里的增强for循环的写法比较类似,从语法角度上更符合人阅读文章的习惯,它的语法结构为:

for 变量 in 变量序列:
    # 循环体

for 循环会遍历完变量序列中所有元素为止,比如之前的计算1 - 100可以改写为:

total = 0
for number in range(101):
    total = total + number
print(total)

注意,使用for循环的时候,尽量不要改变列表的值,否则会有很多困惑,比如不改变列表的值:

numbers = list(range(101))
total = 0
for number in numbers:
    print(number, end="\t")
    print(numbers.index(number))
    total = total + number
print(total)

结果为:

0   0
1   1
2   2
3   3
4   4
5   5
6   6
...
5050

而改变列表的值呢

numbers = list(range(101))
total = 0
for number in numbers:
    print(number, end="\t")
    print(numbers.index(number))
    # 该值索引位置的值加1
    numbers[numbers.index(number)] += 1
    total = total + number
print(total)

结果为:

0   0
1   0
2   0
3   0
4   0
5   0
6   0
...
5050

理论上后一行的代码是不会影响到前一行的代码,但是结果就是改变。。。具体原理是什么,有待研究,等以后学好了再回来看看。

continue和break

  1. continue
    在循环中使用continue,表示跳出本次循环,直接进入下一次循环。比如计算1 - 100的奇数之和:
odd_total = 0
for number in range(101):
    # 如果number是偶数,跳出本次循环,继续下一次循环
    if number % 2 == 0:
        continue
    odd_total = odd_total + number
print(odd_total)

最后的结果为:

2500
  1. break
    遇到break的时候,程序会跳出循环,不管循环条件是不是满足,例如:
total = 0
temp = 0
# 定义一个无限循环
while True:
    temp = temp + 1
    total = total + temp
    # 如果值到了100,跳出循环
    if temp == 100:
        break
print(total)

结果为:

5050

else语句

else语句可以和循环配套使用,比如用来遍历,然后判断某个元素是否存在。

  1. 使用时,最好配合break语句:
values = ["Java", "Android", "Python"]
index = 0
while index < len(values):
    if values[index] == "C":
        print("C exists.")
        break
    index += 1
else:
    print("C does not exist.")

结果为:

C does not exist.
  1. 如果将比较对象改为Java:
values = ["Java", "Android", "Python"]
index = 0
while index < len(values):
    if values[index] == "Java":
        print("Java exists.")
        break
    index += 1
else:
    print("Java does not exist.")

结果为:

Java exists.
  1. 如果去掉break语句,则else语句始终执行:
values = ["Java", "Android", "Python"]
index = 0
while index < len(values):
    if values[index] == "Java":
        print("Java exists.")
    index += 1
else:
    print("Java does not exist.")

结果为:

Java exists.
Java does not exist.
  1. 和for循环配套使用:
values = ["Java", "Android", "Python"]
for value in values:
    if value == "Java":
        print("Java exists.")
        break
else:
    print("Java does not exist.")

结果为:

Java exists.
  1. 如果把else放到循环里,和if配合使用:
values = ["Java", "Android", "Python"]
for value in values:
    if value == "Android":
        print("Android exists.")
        break
    else:
        print("Android does not exist.")

结果为:

Android does not exist.
Android exists.

与我们的需求不符合,所以在遍历查找某个元素是否存在时,可以用循环配合else语句一起使用,其效果等同于 列表.index(元素)。

你可能感兴趣的:(Python学习日记-循环语句)