【自学python100天】D4-循环结构

https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/04.%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%84.md

循环结构在编程里是比较有用的,对逻辑的要求也更高,很多累加、枚举都要用到循环。

  • 场景:重复的执行某条或某些指令
  • 两种:一种是for-in循环,一种是while循环

for-in循环

场景:明确的知道循环执行的次数或者要对一个容器进行迭代

计算1~100求和的结果

s=0 #不要忘记给出变量的初值
for i in range(1,101): 
    s=s+i
print(s) 
  • range(101)可以产生一个0到100的整数序列。
  • range(1, 100)可以产生一个1到99的整数序列。
  • range(1, 100, 2)可以产生一个1到99的奇数序列,其中2是步长,即数值序列的增量。

实现1~100之间的偶数求和:可直接用range(2,101,2),也可以用分支

sum = 0
for x in range(1, 101):
    if x % 2 == 0:
        sum += x
print(sum)

while循环

场景:不知道具体循环次数的循环结构:表达式的值为True循环继续,表达式的值为False循环结束

“猜数字”的小游戏(计算机出一个1~100之间的随机数,人输入自己猜的数字,计算机给出对应的提示信息,直到人猜出计算机出的数字)

import random #随机数生成
answer = random.randint(1,100)
count = 0 #计数器

while True: #常用用法
    count+=1
    guass=int(input('输入你猜的数字:'))
    if guass < answer:
        print('大一点')
    elif guass > answer:
        print('小一点')
    else: 
        print('猜对了!')
        break   #跳出整个循环
print('共猜了%d次'%count)
if count > 7:
    print('你的智商余额明显不足')

break只能终止它所在的那个循环,这一点在使用嵌套的循环结构需要引起注意。

continue,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。

输出一个九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('%d * %d = %d'%(i,j,i*j))
    print()

练习1:输入一个正整数判断是不是素数。

from math import sqrt %引入开方函数
num = int(input('输入一个正整数:'))
end = int(sqrt(num))
is_prime = True %默认为真,若满足合数要求值变假
for i in range(2, end+1):
    if num % i == 0:
        is_prime = False
        break 
if is_prime and num != 1:
    print('%d是素数'%num)
else:
    print('%d不是素数'%num)

练习2:输入两个正整数,计算它们的最大公约数和最小公倍数。

a = int(input('输入一个正整数:'))
b = int(input('输入一个正整数:'))
if a > b:
    a,b=b,a #交换值,使a小
for i in range(a,0,-1):
    if a % i ==0 and b % i ==0:
        print('%d和%d的最大公约数是%d'%(a,b,i))
        print('%d和%d的最小公倍数是%d'%(a,b,a*b//i)) 
        break

练习3:打印三角形图案。

for i in range(1,6):
    print(i*'*')

*
**
***
****
*****

for i in range(1,6):
    print(' '*(6-i),end='') #输出不换行,最后加end=‘’
    print(i*'*')

for i in range(1,6):
    print(' '*(5-i),end='')
    print((2*i-1)*'*')

官方参考代码:

row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(i + 1):
        print('*', end='')
    print()


for i in range(row):
    for j in range(row):
        if j < row - i - 1:
            print(' ', end='')
        else:
            print('*', end='')
    print()

for i in range(row):
    for _ in range(row - i - 1):
        print(' ', end='')
    for _ in range(2 * i + 1):
        print('*', end='')
    print()

总结:

1.循环和分支结构嵌套经常用,逻辑关系和原理一定要搞清楚

2.while 和for循环的使用情况

3.break和continue的用法

4。range函数在循环中经常使用,三种表示方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值