30天python基础(四、循环)

1.1 循环概念
⼴义:⼀个周期现象或者重复出现的情况,这种状态被称为循环
狭义:在满⾜条件的情况下,反复执⾏某⼀段代码,在编程语⾔中出现的这种
现象被称为循环。被反复执⾏的这段代码被称为循环体
当反复执⾏某段代码时,需要在合适的时机将循环停⽌下来,否则会产⽣死循

Python中提供的循环语句:while语句,for-in语句

1.2 使⽤
1.2.1 while语法

while 表达式:
 循环体

⼯作原理:遇到while语句时,⾸先计算表达式的值,如果表达式的值为假,
则跳过整个while语句,继续执⾏下⾯的代码;如果表达式的值为真,则执⾏
循环体

# 计算1-100的和
sum1 = 0
i = 1
while i <= 100:
 sum1 += i
 i += 1
print(sum1,i)

1.2.2 while-else

while 表达式:
 循环体
else:else语句块】
i = 0
while i < 100:
 print("hello world")
 if i > 50:
 break
 i += 1
else:
 print("循环正常结束") #说明:当while语句执⾏完成之后,执⾏【else语句块】,如果⽤break跳出循环则
不执⾏else

1.2.3死循环
在循环语句中,表达式永远为真的循环

while True:
 #循环体
while 1:
 #循环体

1.2.4 while语句的嵌套

while 条件1#外层循环
 【语句块A】
 while 条件2#内存循环
 【语句B】

执⾏流程:⾸先判断外层循环的条件1,如果为真,则执⾏循环体中的【语句块
A】,执⾏内层循环,判断条件2是否成⽴,如果成⽴,执⾏内层循环的【语句块
B】,执⾏完内层循环后,重新判断外层循环条件…

  • 特点:外层循环⾛⼀步,内层循环执⾏⼀遍
  • 外层循环和内层循环的循环变量必须不同
    演示: 打印九九乘法表
#⾏数
i = 1
while i <= 9:
 # 打印每⾏的内容
 j = 1 # 内循环必须完全嵌⼊到外重循环⾥
 while j <= 9:
 print("%d * %d = %2d "%(i,j,i*j),end='')
 j += 1
 print()
 i += 1

1.3. break和continue、exit()

continue 语句⽤来跳过当前循环的剩余语句,然后重新判断循环条件,开启下⼀
轮循环。continue只能出现在while和for循环中
break⽤于结束当前循环。只对当前这⼀重循环起作⽤。break只能出现在循环中
exit()结束程序

#求最⼤公约数
#12和8最⼤公约数
min1 = min(12,8)
i = min1
while i > 0:
 if 12 % i == 0 and 8 % i == 0:
 break # 退出当前这⼀重循环
 i -= 1
print(i)

#统计1到100中3的倍数的和
i = 0
sum1 = 0
while i < 101:
 if i % 3:
 i += 1
 continue # 结束本次循环,从新判断条件,重新执⾏循环体
 sum1 += i
 i += 1
print(sum1)

2.for循环的使用
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:

or letter in 'Python':     # 第一个实例
   print ('当前字母 :', letter)
 
fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二个实例
   print ('当前水果 :', fruit)
 
print ("Good bye!")

输出结果:
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!
2.2通过序列索引迭代

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print ('当前水果 :', fruits[index])
 
print "Good bye!"

以上实例输出结果:
当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!
2.3关于range函数
Python提供的range函数可以让for循环实现上面的功能,可以让for循环从0到10计数,或者从10到100每次递增5。range函数的语法如下:

range(start, end, step=1)
range会返回一个整数序列,statr为整数序列的起始值,end为整数序列的结束值,在生成的整数序列中,不包含结束值。step为整数序列中递增的步长,默认为1。
range(0,5)生成包含0、1、2、3、4的整数序列,Python会把生成的这个整数序列用于for循环语句,循环从0到5,不包括5,步长为1,循环次数为5。

range(10,30,5)生成包含10、15、20、25的整数序列,循环从10到25,不包括30,步长为5,循环次数为4。可以看出,当range用于for循环时,循环次数取决于range返回的整数序列的长度,每次循环的索引计数为整数序列的值。
2.4循环使用 else 语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

for num in range(10,20):  # 迭代 10 到 20 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 等于 %d * %d' % (num,i,j))
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print (num, '是一个质数)

以上实例输出结果:
10 等于 2 * 5
11 是一个质数
12 等于 2 * 6
13 是一个质数
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一个质数
18 等于 2 * 9
19 是一个质数

你可能感兴趣的:(学习专栏)