python基础 - 06 循环结构之for循环

本文详细介绍了Python的for循环结构,包括基本用法、嵌套使用及continue和break的控制流程。通过12个编程练习,涵盖了求和、求积、筛选条件、判断位数、阶乘计算、阶乘之和、九九乘法表、水仙花数、兔子问题、分数序列等应用场景,旨在巩固和提升for循环的运用能力。

for循环结构

循环结构: 在开发中遇到需要重复的做某见事情的时候,需要用到循环结构.

python中提供的循环结构有两种: for循环, while循环.

for循环:一般在知道循环次数的时候使用.

while循环:一般在不知道循环次数的时候使用.

1.for 循环

for循环的结构
for 变量 in 范围:
    循环体(循环执行语句)
    
for的功能:让变量依次去取指定范围中的值,
          直到范围中的值取完为止.每取到一个值执行一次循环体
# range(0, 6): 左闭右开,依次加1
# range(0, 6, 2):左闭右开.依次加2,第三个元素是步长.
# range(10):0,1,2,3,4,5,6,7,8,9,10
for i in range(0, 6, 2):
    print(i)
    
#扩充知识点:
import random
# 随机产生一个1-100的整数
num = random.randint(1,100)
print(num)

# 随机产生一个1-100的浮点数
num = random.uniform(1,100)
print(num)

# 随机产生一个步长为2的整数
num = random.randrange(0,101,2)
print(num)

2.for循环嵌套

例如:
for i in range(1, 10):
    for j in range(1, i+1):
        print()

3.continue 和 break 的使用

(1).continue: 提前结束本次循环(不再执行continue后的循环语句)

# 打印1-10,但是不打印5
for i in range(1, 11):
    if i == 5:
        continue
    print(i, end = ' ')
    
#练习: 计算1-100中所有能被5整除的数的和,要求用continue.
num = 0
for x in range(1, 101):
    if x % 5 != 0:
        continue
    num += x
print(num)

(2). break: 结束整个循环.

# 打印1-10,但是当打印到5时结束整个循环.
for a in range(1, 11):
    if a == 5:
        break
    print(a, end = ' ')

# 练习: 找出101-200之间第一个能被7整除的数,并打印.
for b in range(101, 201):
    if b % 7 == 0:
        print(b)
        break
练习1: 求1+2+3+...+100的和.
Version:0.0.1
Author:韩波
Date:2018.5.10
  
sum1 = 0
for x in range(1, 100+1):
    # sum1 = sum + 1
    sum1 += x
    print(x, sum1)
# print(sum1)
练习2: 求123...100的积.
num2 = 1
for i in range(1,20+1):
    # num2 = num2 * i
    num2 *= i
    print(num2, end = ',')
练习3: 找出1到100中所有可以被3整除的数.
for y in range(1, 100+1):
    if y % 3 == 0:
        print(y, end = ' ')
练习4: 给出一个不多于5位的正整数, 要求:1.求它是几位数?
num3 = int(input('请输入一个不超过5位数的正整数:'))
count = 1
temp = num3
for x in range(1, 6):
    temp //= 10
    if temp != 0:
        count += 1
print('%d是%d位数' % (num3, count))
练习5: 求10的阶乘.
num4 = 1
for i in range(1, 11):
    num4 *= i
print(num4)
练习6: 求阶乘之和: 1! + 2! + 3! + ... n!
num5 = 0
for x in range(1, 4):
    num6 = 1
    for y in range(1, x+1):  # 循环结束后num6存的是X.
        num6 *= y
    num5 += num6    # 把每次求的得的阶乘累加起来
print(num5)
练习7: 九九乘法表.
for x in range(1, 10):
    for y in range(1, x+1):
        print('%d * %d = %d' % (y, x, x*y), end='\t')
    print()
练习8: 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该 数本身。如水仙花数153: 153 = 1^3 + 5^3 + 3^3
for i in range(100, 1000):
    a = i // 100        #百位
    b = i // 10 % 10    #十位
    c = i % 10          #个位
    if i == a**3 + b**3 + c**3:
        print('%d是水仙花数' % i)
练习9: 有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
month = int(input('请输入你想查看的第几个月:'))
num = 1  # 初始兔子的数量
n1 = 1   #第一月的兔子数量
n2 = 1   #第二月的兔子数量
for n in range(1, month + 1):
    if n == 1 or n == 2:
        num = 1          # 一\二月的老兔子
    else:
        num = n1 + n2   #第三月.....n个月的的兔子数量
        n1 = n2
        n2 = num
print('第%d个月的兔子总数有%d只' % (month, num))
练习10: 有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13...求出这个数列的第20个分数
for x in range(1, 21):
    if x == 1:
        num1 = 2     #分子
        num2 = 1     #分母
    else:
        temp = num1
        num1 = num1 + num2
        num2 = temp
print('第20个分数是:%d/%d' % (num1, num2))
练习11: for循环嵌套打印正方形
print('打印实心正方形-----------------------------------------')
for a in range(1, 9):      # 双for循环
    for b in range(1, 9):
        print('*', end='  ')
    print()

print('单for循环')          #单for循环
for a1 in range(1, 9):
    print('  *' * 8, end='')
    print()

print('打印空心正方形-----------------------------------------')
for i in range(1, 9):            # 双for循环
    if (i == 1) | (i == 8):
        for j in range(1, 9):
            print('*', end='  ')
    else:
        for j in range(1):
            print('*', end='  ')
        for j in range(6):
            print(' ', end='  ')
        for j in range(1):
            print('*', end='  ')
    print()

for i1 in range(1, 9):             #单for循环
    if (i1 == 1) | (i1 == 8):
        print('  *' * 8, end='')
    else:
        print('  *' + '   ' * 6 + '  *', end='')
    print()
练习12: for循环嵌套打印三角形
print('打印实心三角形---------------------------------------------')
for c in range(1, 6 + 1):
    for d in range(1, 7 - c):
        print(' ', end='  ')
    for e in range(0, 1 + 2 * (c - 1)):
        print('*', end='  ')
    print()

print('打印直角三角形---------------------------------------------')
for g in range(1, 11):
    for h in range(1, g + 1):
        print('*', end='  ')
    print()

print('打印等腰三角形---------------------------------------------')
for i in range(1, 11):
    for j in range(1, 11 - i):
        print(' ', end='')
    for h in range(1, i + 1):
        print('*', end=' ')
    print()

print('单for循环打印三角形----------------------------------------')
for q in range(0, 11):
    print('  *' * (q + 1), end='')
    print()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值