day04 循环

一、for 循环

1、for 循环

for 变量 in 序列:
 	循环体
for i in 'abc':
    print('hello world!')

2、range 函数

​ —— 用来创建等差数列

1)range(N) —— 产生等差数列[0,N),差是1;

range(5) -> 0,1,2,3,4

2)range(M, N) —— 产生等差数列[M,N),差是1;

range(5, 10) -> 5,6,7,8,9

3)range(M, N, step) —— 产生等差数列[M,N), 差是step;

range(1, 20, 3) -> 1,4,7,10,13,16,19

print('-----------------------')
for i in range(10):
    print(i)

print('-----------------------')
for i in range(5, 10):
    print(i)

print('-----------------------')
for i in range(1, 20, 3):
    print(i)

print('-----------------------')
for i in range(0, 100, 2):
    print(i)

print('-----------------------')
# 10,9,8,7,6,5,4,3,2,1,(0)
for i in range(10, 0, -1):
    print(i)
# 练习:使用range函数创建以下几个等差数列:
# 1) 0,1,2,3,...,10,(11)
for i in range(11):
    print(i)

# 2) 50, 51, 52, ..., 59,(60)
for i in range(50, 60):
    print(i)

# 3) 50, 60, 70, 80, 90
for i in range(50, 91, 10):
    print(i)

# 4) 20, 18, 16, 14, 12, 10
for i in range(20, 9, -2):
    print(i)

3、用来求和或统计个数

1)求和

第一步:定义变量保存结果(最后的和),变量默认值为0

第二步:利用循环获取每一个求和对象,然后和保存和的变量进行加法运算

第三步:循环结束后,变量的值就是最后的和

# 案例1:求1+2+3+4+...+100
sum1 = 0
for i in range(1, 101):
    sum1 += i
print(sum1)

# 案例2:求列表[89, 67, 45, 99, 55, 71, 80, 92]中所有元素的和
nums = [89, 67, 45, 99, 55, 71, 80, 92]
sum1 = 0
for i in nums:
    sum1 += i
print(sum1)
# 练习1:求整数中所有三位数的和
# 100 + 101 + 102 + 103+...+ 999
sum1 = 0
for i in range(100, 1000):
    sum1 += i
print(sum1)

# 练习2:求100以内所有偶数的和
# 0+2+4+6+...+98
sum1 = 0
for i in range(2, 99, 2):
    sum1 += i
print(sum1)

# 练习3:求nums中所有奇数的和
nums = [18, 9, 45, 77, 90, 82, 50, 51]
# 9+45+77+51
sum1 = 0
for i in nums:
    if i % 2 != 0:
        sum1 += i
print(sum1)

2)统计个数

第一步:定义变量保存最后的个数,变量默认值是0
第二步:利用循环获取到每一个统计对象,取到一个个数就加1

# 案例1:统计nums中元素的个数
nums = [19, 34, 78, 89, 22, 15, 55]
count = 0
for i in nums:
    count += 1
print(count)

# 案例2:统计nums中偶数的个数
nums = [19, 34, 78, 89, 22, 15, 55]
count = 0
for i in nums:
    if i % 2 == 0:
        count += 1
print(count)
# 练习1: 统计100以内能被3整除的数的个数
# 3 6 9 12 15 ...99
# 方法1
count = 0
for i in range(0, 100, 3):
    count += 1
print(count)

# 方法2:
count = 0
for i in range(0, 100):
    if i % 3 == 0:
        count += 1
print(count)

print('---------------------------------')
# 练习2: 统计所有的水仙花数的个数
# 100, 101, 102,...,999
count = 0
for i in range(100, 1000):
    j = (i % 10) ** 3 + (i // 10 % 10) ** 3 + (i // 100) ** 3
    if j == i:
        print(i)
        count += 1
print(count)

二、while 循环

语法:

while 条件语句:
	循环体

执行过程:

不断的判断条件语句是否为True,如果为True就执行循环体为False循环结束

x = 0
while x < 5:
    print('hello world!')
    x += 1

"""
x=0: while x < 5 -> while 0 < 5  -> while True -> print('hello world!'); x += 1 -> x = 1
x=1: while x < 5 -> while 1 < 5  -> while True -> print('hello world!'); x += 1 -> x = 2
...
x=5: while x < 5 -> while 5 < 5  -> while False -> 循环结束


hello world!
hello world!
...
"""

for 和 while 的选择问题

如果遇到了循环的问题,优先考虑使用 for 循环,for 循环解决不了才使用 while。

  • for的应用场景:循环次数确定

  • while的应用场景:循环次数不确定(写代码的时候程序员无法知道循环的次数)

input 函数 —— 输入函数

  • 变量 = input(输入提示信息) —— 提示用户输入数据,并且将用户输入的数据保存到指定的变量中(输入以回车结束

  • 输入的数据默认都是字符串

name = input('请输入姓名:')
print(name)

# 将输入的年龄转换成整型再赋值给age
age = int(input('请输入年龄:'))
print(age, age >= 18)

'''
请输入姓名:hj
hj
请输入年龄:22
22 True
'''
# 案例:提示用户输入密码,知道输入正确为止
pw = '123456'
value = None
while pw != value:
    value = input('请输入密码:')

'''
请输入密码:123
请输入密码: abc
请输入密码:56712
...
请输入密码:123456
'''

三、break 关键字

​ —— break 是循环关键字只能在循环体中使用

break 的作用: 结束整个循环(执行循环体的时候如果遇到break,循环直接结束)

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

for x in range(10):
    if x >= 4:
        break
    print('hello!')

while 遇到 break

while True:
    需要重复执行的操作
    if 循环结束条件:
    	break
pw = 'abc123'
while True:
    value = input('请输入密码:')
    if value == pw:
        break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值