for循环和while循环

循环

1. for循环

“”"

语法:

for 变量 in 序列:

​ 循环体

说明:for、in - 关键字、固定写法

变量 - 写一个变量名(可以是已经定义过的,也可以是没有定义的)

序列 - 容器型数据类型对应的数据常见列表(字符串、列表、元组、字典、集合、迭代器、生成器、range等)

: - 固定写法

循环体: - 和for保持一个缩进的一条或者多条语句;就是需要重复执行的代码。

执行过程:让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体。for循环循环的次数和序列中的元素个数有关

“”"

2.range函数 - 产生指定范围的数字序列

1)range(N) - 产生[0, N)的数字序列,其中步长是1

2)range(M, N) - 产生M到N的数字序列[M, N),步长为1

3)range(M, N, steo) - 产生M到N的数字序列[M, N),步长为step指定的值

print('===============用法1 :产生步长为1的数字序列=======================')
for i in range(10):
    print(i)
    # 依次输出0到9整数
print('===============用法2: 直接的控制循环次数===========================')
for i in range(4):
    print('hello!')
    #输出四个hello!
print('==========================================')
for i in range(0, 10, 2):
    print(i)
    # 依次输出0到8的整数(0,2,4,6,8),步长为2
print('==========================================')
for i in range(10, 0, -1):
    print(i)
	# 依次输出从10到1的整数,步长为-1

练习1 :打印100以内所有的偶数

for i in range(0, 101):
    if i % 2 == 0:
        print(i)
for i in range(0, 101, 2):
    print(i)

练习2: 打印100~200中所有的个位数是3的数

for i in range(100, 200):
    if i % 10 == 3:        
        print(i)
        

练习3: 打印所有的水仙花数

方法一:

for i in range(100, 1000):
    if i ==(i//100)**3 + (i%100//10)**3 + (i % 10)**3:       
        print(i, '是水仙花数')

方法二:

for num in range(100, 1000):
    k = num // 100    
    l = num % 100 // 10    
    m = num % 10    
    if k ** 3 + l ** 3 + m ** 3 == num:       
        print(num, '是水仙花数', sep='')
# 153是水仙花数
# 370是水仙花数
# 371是水仙花数
# 407是水仙花数

两个套路

1.统计100以内偶数的个数

n = 0
for i in range(0, 100): 
    if i % 2 == 0:       
        n += 1print(n)
    # 50

2.统计100以内能被3整除的偶数个数

# 方法一
n = 0
for i in range(0, 100, 6):
    n += 1
print(n)
# 方法二
n = 0
for i in range(0, 100, 3):
     if i % 2 == 0:
         n += 1
print(n)
	# 17

3.计算1+2+3+…+100的和

n = 0
for i in range(1, 101): 
    n += i
print(n)
	 # 5050

4.计算所有水仙花数的和

n = 0
for i in range(100, 1000):
    if i == (i//100)**3 + (i % 100 // 10)**3 + (i % 10)**3:
        n += i
print(n)
	# 1301

while循环

while循环

“”"

语法:

while 条件语句:

 循环体

说明:

while - 关键字;固定写法

条件语句 - 任何有结果的表达式(只有赋值语句不行)

: -固定写法

循环体 - 和while保持一个缩进的一条或者多条语句,需要重复执行的代码执行过程:先判断条件是否为True,如果为True就执行循环体,执行完循环体在判断条件是否为True,如果为True就再执行循环体…以此类推,当条件为False循环时直接结束循环。

“”"

练习:使用while循环控制程序打印10个‘hello’

num = 10
while num > 0:
    print('hello')    
    num -= 1
while循环控制循环次数的原则:让条件经历过指定次数后由True变成False
for x in range(10):
    print('hello')
    # 输出10遍hello

2.while和for的选择

for循环:循环次数确定的时候使用

while循环:循环次数不确定的时候(程序员在写代码的时候没有办通过任何方式来确定循环次数)

练习:提示用户不断输入内容,直到输入的数是0为止

num = 1
while num != '0':
    num = input('请输入:')
    # 当用户输入不为0时一直提示用户请输入

循环关键字

1.continue和break

“”"

continue和break只能出现在循环体中

1) continue - 结束一次循环/结束当次循环如果在执行循环体时遇到了continue,那么当次循环结束,直接进入下一次循环

2)break - 结束整个循环如果在执行循环体的时候遇到了break,整个循环直接结束

“”"

for i in range(4):
    print('=====')
    continue    
    print('+++++')   
    print('-----')
    # 输出四行等于
for x in range(10):
    if x == 5 or x == 8:
        continue    
        print(x)
    # 输出0到9中不等于5和8的数
print('============break==============')
for x in range(4):    
    print('=====')    
    break    
    print('+++++')    
    print('-----')
print('end')
	# 输出一行等于后换行输出end
for x in range(10):
    print(x)    
    if x == 3:       
        break
    # 依次换行输出0、1、2、3

2.有了break的while循环

“”"

while True:

​ 需要重复执行的操作

if 循环结束的条件:        

​ break

“”"

3.else

“”"

完整for循环:

for 变量 in 序列:

​ 循环体

else:

​ 代码段

完整的while循环:

while 条件语句:

​ 循环体

else:

​ 代码段

else结构的存在不影响原来循环的执行,当循环自然死亡else后的代码段会执行,循环非自然死亡(遇到break而结束的)else后代码段不执行

“”"

for循环中的else:

for x in range(4):
    print(x, '=====')
    if x == 2:
        break
else:
    print('else')
for x in range(4):
    print(x, '=====')
else:
    print('else')

while循环中的else:

num = 0
while num != 4:
    print('=====')
    num += 1    
    if num == 2:
        break
else:
    print('end')
num = 0
while num != 4:
    print('=====')
    num += 1    
else:
    print('end')
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值