第四章 python中的循环结构

目录

一、python中的内置函数

1、 range(stop)

2、range(start,stop)

3、range(start,stop,step)

4、range的实际应用

 二、python中的循环结构

1、while循环

2、for-in循环

三、python中的二重循环----嵌套

1、python打印直角三角形

2、python使用for循环打印九九乘法表

3、python使用while循环打印九九乘法表

4、嵌套中的流程控制break、continue


一、python中的内置函数

        内置函数range()可创建一个整数列表,一般用在for循环中。range()的三种创建方式:

1、 range(stop)

r = range(10)           #默认从0开始,默认相差1为步长
print(r)                #range(0,10)
print(list(r))          #用于查看range对象中的整数数列    ---->list是列表的意思

range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2、range(start,stop)

r = range(1,10)          #指定初始值为1,到10结束不包括10,默认步长为1
print(r)                 #[1,2,3,4,5,6,7,8,9]

 range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

3、range(start,stop,step)

r = range(1,10,2)        #指定从1开始,到10结束,步长(间隔)为2
print(list(r))           #[1,3,5,7,9]

 [1, 3, 5, 7, 9]

4、range的实际应用

        多用在循环或者数列列表中

'''1-100之间的偶数和'''      
print(sum(range(1,101,2)))

补充:

in与not in 在列表中的操作

r = range(1,10) 
print(3 in r)            #True
print(10 not in r)       #True

range()函数的优点在于不论存储的数据多长,它所占有的存储空间都是相同的,因为它只存储三个值 start,stop,step。

print(range(1,10,1))  
print(range(1,1000,1))
这两个range中一个存储的1-10的整数个数,另一个存储1-1000的整数个数,但是他们的存储空间相同

 二、python中的循环结构

1、while循环

当不满足循环表达式条件时退出循环,执行n次,判断n+1次

初始化变量值

while 判断条件 :

        执行语句

        改变变量

      使用while循环时注意它的格式

 '''计算0-4之间的总和'''
a = 0
s = 0                #定义初始化变量
while a <= 4 :       #条件判断
    s+=a             #循环条件执行体
    a+=1             #改变变量        python中的a++
print(s)             #当print进行缩进,会依次打印出每一次循环的值

'''1-100之间的偶数和'''  
i = 1
sum = 0
while i<=100 :
    if i%2 == 0 :     
    i += 1
print(sum)
'''1-100之间的奇数和'''
i = 1
n = 0
while i<=100 :
    if i%2 :                                               
        n += i         
    i += 1
print(n)

 

对于求奇数和,由于0的布尔值为False,当i%2==0时结果为False,不会执行下一条语句; 当i%2==1时结果为True继续执行求和运算,因此求偶数和可以有另一种表达方式: not bool(i%2) 对i%2的布尔型进行取反操作。

2、for-in循环

        for循环可以遍历任何序列的项目,如一个列表或者一个字符串,in表达从(字符串,序列)中依次取值,又称为遍历,要注意for-in循环的操作对象必须是可迭代对象

for 变量 in 可迭代对象:

        代码块

for item in 'python':  
    print(item)   
#注意是依次取值,  定义一个变量item依次从字符串‘python’中取出每一个字母给item进行输出      
#for-in循环,先从‘python’中取出p赋给item,在进行打印输出,再进行下一次取值输出

p
y
t
h
o
n

在for-in循环中经常使用range()产生一个整数序列,也是一个可迭代对象

for i in range(10):    #依次打印了0-9
    print(i)
不使用变量可以用 下划线'_'代替控制循环
for _ in range(5):      
    print('人生苦短,我用python')  #打印五次
print('-----------使用for循环计算1-100之间的偶数和--------------')
sum = 0
for i_1 in range(1,101):
     if not bool(i_1%2):
         sum+=i_1
print(sum)

注意:python中具有严格的格式缩进,对于上述例题,如果将print与if语句对其,则print语句就会进入循环,就会依次打印每一次的值

i = 1
sum = 0
while i<=100 :
    if i%2 == 0 :     
        sum += i
    i += 1
    print(sum)      #print缩进,会进入循环

0
2
2
6
6
12

.......

2450

2550           从0开始依次相加输出结果

三、python中的二重循环----嵌套

python语言允许在一个循环体里嵌入另一个循环

 for i in range(1,4):           #外面表示行数,执行三次,一次一行
     for j in range(1,5):       #里面表示一行打印的个数
         print('*',end='\t')  
     print()                    #一行四个*都打印完跳出循环,即换行输出

*    *    *    *    
*    *    *    *    
*    *    *    *   

  end=''表示当打印完*号后不换行输出,   在使用 \t 后则在*号后增加一个制表位。

1、python打印直角三角形

 for i in range(1,10):
     for j in range(i):
         print('*',end='\t')
     print()

思路:第一个for表示打印的行数,第二个for循环的range以i为参数,实现第一行打印一个,第二行打印两个...

2、python使用for循环打印九九乘法表

 for i in range(1,10):
     for j in range(1,i+1):
         print( i,'*',j,'=',i*j,end='\t')
     print()

1 * 1 = 1    
2 * 1 = 2    2 * 2 = 4    
3 * 1 = 3    3 * 2 = 6    3 * 3 = 9    
4 * 1 = 4    4 * 2 = 8    4 * 3 = 12    4 * 4 = 16

......

第三行print中的逗号可以使用+号代替,但要注意+号的对象是字符串类型,因此必须使用str()强制转换

print( str(i)+'*'+str(j)+'='+str(i*j),end='\t')

3、python使用while循环打印九九乘法表

 i = 1
 while i<=9 :
     j = 1
     while j<=i:
         print(str(i)+'*'+str(j)+'='+str(i*j),end='\t')
         j+=1
     print()
     i += 1

使用while循环要注意 每一行打印的数量总是小于等于该行数 因此j<=i

4、嵌套中的流程控制break、continue

for i in range(5):
    for j in range(1,10):
        if j%2 == 0:
            break                 #break终止循环
            #continue             #continue能打印出与条件相反的结果
        print(j,end='\t')
    print()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值