python学习笔记循环

python学习笔记:循环

for循环

  • 语法:
for 变量 in 序列:
    循环体
  • 说明:
    for、in - 关键字,固定写法
    变量 - 写一个变量名。(可以是已经定义过的,也可以没有没有定义过的)
    序列 - 容器型数据类型对应的数据,常见的序列:字符串、列表、元组、集合、迭代器、生成器、range。
    : - 固定写法
    循环体 - 和for保持一个缩进的一条或者是多条语句;就是需要重复执行的代码。
  • 执行过程:
    让变量去序列中取值,一个一个的取,直到取完为止,没取一个执行一次循环体。
    for循环循环的次数和序列中元素的个数有关

例题

# 1.统计100以内偶数的个数
num = 0
for x in range(100):
    if x % 2 == 0:
        num += 1
print('100以内偶数的个数',num)

count = 0
for x in range(0,100,2):
    count += 1
print('100以内偶数的个数',count)


# 2.统计100以内能被3整除的偶数的个数
num = 0
for x in range(100):
    if x % 6 == 0:
        num += 1
print('100以内能被3整除的偶数的个数',num)

count = 0
for x in range(0,100,3):
    if x % 2 == 0:
        count += 1
print('100以内能被3整除的偶数的个数',count)



# 3.计算1+2+3+···+100的和
num = 0
for x in range(1,101):
    num += x
print('1+2+3+···+100的和',num)



# 4.计算所有水仙花数的和
num = 0
for x in range(0,1000):
    a = x % 10
    b = x // 10 % 10
    c = x // 100
    if a**3 + b**3 + c**3 == x:
        num += x
print(num)

while循环

  • 语法:

  • while 条件语句:
        循环体
    
  • 说明:

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

  • 执行经过:

    • 先判断条件语句是否为True 如果Ture就执行循环体,执行完循环体在判断条件是否为True,如果为True就再执行循环体111
      一次类推,当条件语句结果为False时 结束
  • while和for的选择

  • for循环:循环次数是确定的就用

  • while循环;循环次数不确定的时候用(程序员再写代码的时候没有办法通过任何凡是来确定循环次数)

例题

# 使用while循环控制程序打印10个'hello'
num = 10
while num > 0:
    print('hello')
    num -= 1
    
x = input('请输入一个数字:')
while x != '0':
    x = input('请输入一个数字:')
print('退出')

循环关键字

  • continue - 结束一次循环/结束当次循环

    • 如果在执行循环体的时候遇到continue,那么当次循环结束,直接进入下一次循环
  • break - 结束循环

    • 如果在执行循环体的时候遇到break,整个循环直接结束
  • else

    • else结构的存在不影响原来循环的执行,当循环自然死亡else后面的代码段会执行,如果循环是因为遇到break而借宿的else后面的代码段不执行
for x in range(4):
    print(x,'====')
    if x == 2:
        break
else:
    pass

基础题

  1. 使用for和while循环输出 0~100内所有3的倍数。

    print('=======for========')
    for x in range(0,101,3):
        print(x)
    
    print('=======while=======')
    x = 0
    while True:
        print(x)
     x += 3
     if x >= 100:
         break
    
  2. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。

    
    print('=======for========')
    for x in range(100,201):
     if x // 10 % 10 % 3 ==0 or x % 10 % 3 == 0:
         print(x)
    
    print('=======while=======')
    x = 100
    while  True:
     shi = x // 10 % 10
     ge = x % 10
     if x // 10 % 10 % 3 == 0 or x % 10 % 3 == 0:
         print(x)
     x +=1
     if x >= 200:
         break
    
    
  3. 统计100~200中十位数是5的数的个数

    num = 0
    for x in range(100,200):
        shi = x // 10 % 10
        if shi == 5:
            num += 1
    print(num)
    
  4. 打印50~150中所有能被3整除但是不能被5整除的数

    for x in range(50,151):
        if (x % 3 == 0) and (x % 5 != 0):
            print(x)
    
  5. 计算50~150中所有能被3整除但是不能被5整除的数的和

    num = 0
    for x in range(50,151):
        if (x % 3 == 0) and (x % 5 != 0):
            num += x
    print(num)
    

进阶题

  1. 使用循环计算1*2*3*4*...*10的结果。

    num = 1
    for x in range(1,11):
        num *= x
    print(num)
    
  2. 统计100以内个位数是2并且能够被3整除的数的个数

    num = 0
    for x in range(0,100):
        shi = x // 10
        ge = x % 10
        if (ge == 2) and (shi % 3 == 0):
            num += 1
    print(num)
    
  3. 输入任意一个正整数,求他是几位数?

    注意: 这儿不能使用字符串,只能用循环

  4. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是

    ⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153。

    for x in range(100,1000):
        ge = x % 10
        shi = x // 10 % 10
        bai = x //100
        if ge**3 + shi**3 + bai**3 == x:
            print(x)
    

你可能感兴趣的:(python)