循环的使用

循环

1.for循环
'''
语法:
for+变量+in+序列:
    循环体

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

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

'''
for a in 'add':
    print(a, 'hello')

'''
a = 'a':print(a, 'hello')-> print('a', 'hello'
a = 'd':print(a, 'hello')-> print('d', 'hello'
'''

#  需求:打印‘hello’ 100遍?
for x in '':
    print('hello')
2.range函数

产生指定范围的数字序列

1)用法: range(N) - 产生[0, N]的数字序列,其中步长是1

2)用法2:range(M, N) - 产生[M,N]的数字序列,步长为1

3)用法3:range(M, N, step) - 产生[M, N], 步长为step指定的值

print('====用法1:产生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(20, 1, -2):
    print(x)

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

练习:打印~一百以内所有的偶数

for x in range(0, 100, 2):
	print(x)
	
for x in range(100):
	if x % 2 == 0:
		print(x)

练习2:打印100~200中的个位数是3的数

for x in range(100, 201):
	if x % 10 ==3
		print(x)

for x in range(103, 201, 10):
	print(x)

练习3:打印所有的水仙花数

fo x in range(100, 1000)
	a = x //100    999 
	b = x % 10 // 10
	c = x %10
	if x == a**3 + b**3 + c**3:
	print(x)
2.两个小套路

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

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

2.统计100以内能被3整除的偶数的个数

方法1

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

方法2

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

3.计算1+2+3+4…+100的和

sum1 = 0
for x in range(1, 101):
	sum1 += x
	print('1+2+3+4...+100', sum1)

4.计算所有水仙花数的和

sum1 = 0
for x in range(100, 1000):
	a = x % 10
	b = x //10 % 10 
	c = x //100
	if x == a**3 + b**3 + c**3
		sum1 += x
3.while循环
'''
语法:
while-条件语句:
    循环体
    
说明:
while   -   关键字:固定写法
条件语句    -   任何有结果的表达式:(只有赋值语句不行)
:   -   固定写法
循环体     -   和while保持一个缩进的一条或者多条语句:需要重复执行代码

执行过程:
先判断条件语句是否为True,如果为True就执行循环体,执行完循环体在判断条件语句是否为True,为True就在执行循环体
以此内推,当条件语句为False循环戒指结束

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

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


# 2.while和for的选择
# for循环:循环次数确定的时候使用
# while循环:循环次数不确定的时候使用(程序员在写代码的时候没有办法确定循环次数)
# 练习:提示用户不断输入内容,知道输入数据是0为止
'''
请输入:90
请输入:28
请输入:abc
请输入:op
...
请输入:0
'''

num = ''
while num != '0':
    num = input('请输入:')
4.循环关键字

1.continue和break

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

2)break - 结束整个循环
如果在执行循环体的时候遇到了break,整个循环直接结束


'''
print('=========continue============')
for x in range(4):
    print('===')
    continue
    print('+++')
    print('---')

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

print('=========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:
    代码段
    
完整的while循环:    
while 条件语句:
    循环体
else:
    代码段

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

基础题

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

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

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

    count = 0
    for x in range(100, 200):
        a = x // 10 % 10
        if a == 5:
            count += 1
    print(count)
    
  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整除的数的和

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

进阶题

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

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

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

    num1 = 0
    x = int(input('请输入一个数:'))
    while True:
        x = x // 10
        num1 += 1
        if x == 0:
            break
    print(num1)
    

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

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

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

    sum1 = 0
    for x in range(100, 1000):
    	a = x % 10
    	b = x //10 % 10 
    	c = x //100
    	if x == a**3 + b**3 + c**3
    		sum1 += x
    

挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)

  2. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)

  3. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

  4. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值