循坏结构

本文详细介绍了Python中的循环结构,包括for循环和while循环的使用方法,以及循环控制语句如continue和break的实践。通过多个实例展示了如何在循环中统计特定条件的元素个数、计算序列之和等。同时,文章还提供了多个练习题,帮助读者巩固循环控制的概念。
摘要由CSDN通过智能技术生成

总结

循环 : 让代码只写一遍,但是可以多次执行

循环分为:for循环,while循环

for循环

语法是:

# for 变量 in 序列:
# 	  循环体

变量:可以是没有定义过变量的变量名,也可以是已经定义过变量的变量名

序列:容器型的数据类型:字符串、列表、元组、字典、集合、迭代器、生成器、range等

循环体:和for保持一个缩进的一条或者多条语句(需要重复执行的代码)

执行过程:让变量在序列中取值,一个一个取,取完为止,每取一个值就执行一次循环体;

for x in 'aaa':
	print('hello world')  # 打印三次hello world

range函数

产生指定范围的数字序列

  • range(N) :产生 0 ~ N-1 的数字序列;例如:range(3)—产生:0,1,2
  • range(M,N):产生 M ~ N -1的数字序列;例如:range(10,15) —产生:10,11,12,13,14
  • range(M,N,step) :产生[M,N)的数字序列,步长是step(每次增加step)
# 练习1:打印100以内所有的偶数
for x in range(0, 100, 2):
    print(x)


# 练习2:统计100以内奇数的个数
li = 0
for y in range(1, 100, 2):
    li += 1
print(li)

# 练习3:统计100以内能被3整除的偶数的个数
count = 0
for z in range(0, 100, 6):
    count += 1
print(count)

# 练习4:计算1+2+3+...+100的和

count = 0
for i in range(0, 100):
    count += (i+1)
print(count)

# 练习5:计算100到200之间能被3整除,但是不能被5整除的数的和

count = 0
for i in range(100, 200):
    if i % 3 == 0 and i % 5 != 0:
        count += i
print(count)

# 或者 (执行效率高于第一个)
count = 0
for i in range(102, 200, 3):
    if i % 5 != 0:
        count += i
print(count)

while循环

语法:

while 条件语句:
    循环体

while :固定写法,关键字

条件语句:任何有结果的表达式(除了赋值语句)

循环体: 和while保持一个缩进的一条或者多条语句(需要重复执行的代码)

执行过程:先判断条件语句是否为True,如果是,就执行循环体;执行完循环体后再次判断条件语句是否True,为True就再次执行循环体…以此类推,如果条件语句的结果是False,循环体就结束。

# 练习1.用while循环打印3次'hello world'
# a = 0
# while a < 3:
#     print('hello world')
#     a += 1
#for循环的写法:
# for x in range(3):
#     print('aaa')

# 练习2:提示用户输入密码,直到输入正确为止
pw = 123456
x = int(input('请输入密码:'))   # 获得第一次输入的密码
while x != pw:  # 如果输入的密码和设置的密码不相等
    x = int(input('请输入密码:'))  # 输入的密码x 再去和条件做比较,满足则不循环,不满足则再次循环
# 判断输入的数字是否正确
import random
num = random.randint(0, 100)    # 产生一个0-100的随机整数,并且保存到变量num中
x = int(input('请输入数字:'))
count = 1

while x != num:
    if x < num:
        print('小了再大点:')
    else:
        print('大了再小点')
    x = int(input('请输入数字:'))
    count += 1
print('恭喜你猜对了!')
print('总共猜了', count, '次')

循环关键字

continue、break、else

  • continue - 结束一次循环

    • 执行循环体的时候如果遇到continue,当次循环直接结束,直接进入下一次循环
  • break - 结束整个循环,只能在循环体中使用

    • 执行循环体的时候遇到break,整个循环直接结束
    for x in range(2):
        print('aaa')
        print('bbb')
        break
        print('ccc')
    print('x:', x)
    
  • else

    • else 的存在不影响原来循环的执行;
    • else后面的代码段在循环自然死亡的时候会执行,循环因为遇到break而结束的时候,else后面的代码不会执行
    """
    for 变量 in 序列:
    	循环体
    else:
    	代码段
    	
    while 条件语句:
    	循环体
    else:
    	代码段
    """
    
    for x in range(3):
        print('aa', x)
        if x == 3:
            break
    else:
        print('1')
    

使用while 循环的套路

"""
while True:
	每次循环要做的事情
	if 循环结束的条件:
		break
"""

pw = '1234'
while True:
    x = input('请输入密码:')
    if x == pw:
        break

作业

  1. 使用for和while循环输出 0~100内所有3的倍数。
for x in range(3,100,3):
    print(x) 
    
num = 3
while num < 100:
    if num % 3 == 0:
        print(num)
    num += 1
   
  1. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数
for x in range(100, 201):
    if (x % 10) % 3 == 0 or ((x % 100) % 10) % 3 == 0:
        print(x)
       
x = 100
while x < 201:
    if (x % 10) % 3 == 0 or ((x % 100) % 10) % 3 == 0:
        print(x)
    x += 1

进阶题

  1. 使用循环计算1*2*3*4*...*10的结果
i = 1
for x in range(1, 11):
    i *= x
print(i)
  1. 统计100以内个位数是2并且能够被3整除的数的个数
num = 0
for x in range(0, 101):
    if (x % 10 == 2) and (x % 3 == 0):
        num += 1
print(num)
# 或者
for x in range(0, 100, 3):
    if x % 10 == 2:
        num += 1
print(num)
  1. 输入任意一个正整数,求他是几位数?
# 假如输入为120,整除10得12,次数加1,12整除10得1.2,次数加1,结束循环,打印次数
num = 1
x = int(input('请输入一个数:'))
while x > 10:
    x = x // 10
    num += 1
print(num)
  1. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是

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

count = 0
for i in range(100, 1000):
    x = i % 10  # 获取个位
    y = i // 10 % 10  # 获取十位
    z = i // 100  # 获取百位
    if i == z**3 + y**3 + x**3:
        print(i)

挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = 5
if num > 1:
    for i in range(2, num):  # 循环2,3,4
        if (num % i) == 0:  # 如果 5 % 2 余 1 不等于 0.输出不是质数
            print('不是质数')
            break
    else:
        print('是质数')
else:
    print('不是质数')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值