循环基本使用和拓展

循环

一、for循环

  1. for循环
'''
语法:
for 变量 in 序列:
    循环体
    
    
说明:
for、in   -  关键字,固定写法
变量      -  写一个变量名。(可以是已经定义过的,也可以没有定义过的)
序列      -  容器型数据类型对应的数据,常见序列:植复仇、列表、元组、字典、集合、迭代器、生成器、range
:       -   固定写法
循环体   -    和for保持一个缩进的一条或者多条语句;就是需要重复执行的代码。

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

'''
for x in 'abc123':
    print(x,'hello')

'''
x = 'a': print(x,'hello') -> print('a','hello')
......
x = '3': print(x,'hello') -> print('3','hello')
'''
  1. range函数 - 产生指定范围的数字序列
# 1)range(N)     -   产生[0,N)的数字序列,其中步长是1
# 2)range(M,N)  -  产生[M,N)的数字序列,步长为1
# 3)range(M,N,step)  -  产生[M,N)的数字序列,步长为step指定的值
print('======用法一:产生0开始步长为1的数字序列======')
for x in range(10):
    print(x)
print('======用法2:直接的控制循环次数==========')
for x in range(4):
    print('hello!')

print('======================================================')
for x in range(10,20):
    print(x)


print('=========================================')
for x in range(-10,0):
    print(x)

print('==========================')
for x in range(10,20,2):
    print(x)

print('=========================')
for x in range(20,0,-1):
    print(x)


print('=========================================')
for x in range(30,10,-3):
    print(x)

print('========1111========================1111==============')


# 练习1:打印100以内所有的偶数
print('====================方法一========================')
for x in range(100):
    if x % 2 == 0:
        print(x)
print('=======================方法二=========================')
for x in range(0,100,2):
    print(x)

# 练习2:打印100-200中所有个位数是3的数
print('========================方法一=============================')
for x in range(103,200,10):
    print(x)
print('=========================方法二=====================')
for x in range(100,201):
    if x % 10 ==3:
        print(x)

# 练习3:打印所有的水仙花数
print('===================================================')
for num in range(100,1000):
    ge = num % 10
    shi = num // 10 % 10
    bai = num // 100
    if ge ** 3 + shi ** 3 + bai ** 3 == num:
        print(num)

二、两个套路

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

num = 0     # 统计满足条件的个数
for x in range(0,100):
    if x % 2 == 0:
        num += 1
print('一百以内的偶数个数',num)
  1. 统计100以内能被3整除的偶数个数
# 方法一
num = 0
for x in range(0,100,3):
    if x % 2 == 0:
        num += 1
print('一百以内的能被3整除的偶数个数',num)
# 方法二
num = 0
for x in range(0,100,6):
        num += 1
print('一百以内的能被3整除的偶数个数',num)
  1. 计算1+2+3+…+100的和
sum1 = 0
for x in range(1,101):
    sum1 += x
print('1+2+3+。。。+100的和',sum1)
'''
x = 1:sum1 += x -> sum1 += 1 -> sum1 = 0 + 1   (后面就是0+1+2+。。。+100)
......

'''
  1. 计算所有水仙花数的和
sum1 = 0
for num in range(100,1000):
    ge = num % 10
    shi = num // 10 % 10
    bai = num // 100
    if ge ** 3 + shi ** 3 + bai ** 3 == num:
        sum1 += num
print('所有水仙花数的和',sum1)

三、while循环

  1. while
'''
语法:
while 条件语句:
    循环体

说明:
while  -  关键字;固定写法
条件语句  -  任何有结果的表达式(只有赋值语句不行)
:  -    固定写法
循环体   -  和while保持一个缩进的一条或则和多条语句;需要重复执行代码

执行过程:
先判断条件语句是否为True,如果为True就执行循环题,执行完在判断是否为True...依次类推,当条件语句结果为False循环直接结束

'''

# 使用while循环控制程序打印10个’hello‘
num = 10
while num > 0:
    print('hello')
    num -= 1

# while 循环控制循环次数的原则:让条件经历过指定次数后由True变为False




# while 和 for 的选择
# for循环:循环次数确定时使用
# while循环:循环次数并不确定时使用 (程序员写代码时没办法通过任何方式来确定循环次数)

# 练习:提示用户不断输入内容,直到输入的数据是0为止
value = input('请输入:')
while value != '0':
    value = input('请输入:')

四、循环关键字

  1. continue 和 break
'''
continue he break只能出现在循环体中
1)continue - 结束一次循环/结束当次循环
如果在执行循环体的时候遇到了cintinue,那么当初循环结束,直接进入下一次循环

2)break - 结束整个循环
如果子啊执行循环题的时候遇到了break,整个循环直接结束
'''
# 1)=========continue====================
for x in range(4):
    print('=====')
    continue
    print('+++++')
    print('-----')

for x in range(10):
    if x == 5 or x == 8:
        continue
print(x)

# ======================break=========================
for x in range(4):
    print('=====')
    break
    print('+++++')
    print('-----')
print('end')


for x in range(10):
    print(x)
    if x == 3:
        break



# 2.有了break的while循环
'''
while True:
    需要重复执行的操作
    if 循环结束的条件:
        break
'''

while True:
    value = input('请输入:')
    if value == '0':
        break

# 3、else
'''
完整的for循环
for 变量 in 序列:
    循环体
else:
    代码段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值