前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python算法实践Week3-循环程序设计

Python算法实践Week3-循环程序设计

作者头像
Hsinyan
发布2022-06-19 17:20:18
6050
发布2022-06-19 17:20:18
举报
文章被收录于专栏:Hsinyan写字的地方

0x00 问题引入

  • 问题:输入30个数,输出最大的数
  • 分析
    • 第一个数可能是最大的数,记住它;
    • 对于之后的每一个数,与记住的数字进行比较,如果比记住的数字大,则记住此数;
    • 所有的数字看过之后,输出最大的数;
  • 循环
    • 程序中重复做某事的现象称为循环
      • 例如求1~100的和,求一个班某科成绩的平均分
  • 循环结构(循环条件和循环体)

0x01 while循环

  • 问题:求1+2+3+4+……+100的值
    • 流程图
  • Python语言实现
  1. = 0
  2. = 1
  3. i < 101: sum += i i += 1 print(sum)
  • 问题:求1~n的和,n为任意正整数
  1. = int(input('请输入正整数n:'))
  2. = 0
  3. = 1
  4. i < n+1: sum += i i += 1 print(sum)

0x02 for循环

  • 遍历循环
    • 针对某一数据集合
    • 循环依次访问集合中每一个元素
    • 是一种确定次数的循环
  • for循环语句语法
  • range()函数
代码语言:javascript
复制
range(start,end,step)
range()函数创建序列,包括下限,不包括上限
例如
    range(101),范围0~100
    range(1,101),访问1~100
  • 问题:求1~100之间的自然数之和
代码语言:javascript
复制
sum = 0
for i in range(1,101):
    sum += i
print(sum)
  • 问题:求1~n之间的自然数之和,n为任意正整数
代码语言:javascript
复制
sum = 0
for i in range(1,101):
    sum += i
print(sum)

0x03 循环嵌套

  • 循环的嵌套
    • 是指在一个循环中嵌套另外一个完整的循环,即循环体中又包含循环语句
    • while循环和for循环可以相互嵌套
    • 循环嵌套的执行过程 一次外循环对应着一次完整的内循环
  • 问题:打印99乘法表
代码语言:javascript
复制
# 打印99乘法表
for i in range(1, 10):  # 控制行
    for j in range(1, i + 1):  # 控制列
        print('{}*{}={}'.format(j, i, i * j), sep='', end='\t')
    print()

0x04 break和continue

  • break用来结束循环
    • 程序从循环后代码继续执行
  • continue用来结束当前当次循环
    • 不再执行循环体中下面尚未定义的语句
    • 但不结束当前循环
  • 问题:求200以内能被17整除的最大正整数
    • 分析:这个查找过程将以递减的形式遍历200~1之间的整数,当找到第一个能被17整除的数时,循环过程立即停止
代码语言:javascript
复制
# 求200以内能被17整除的最大正整数
for i in range(200, 1, -1):
    if i % 17 == 0:
        break
print('200以内能被17整除的最大正整数是{}'.format(i))
  • 问题:求1~100以内所有偶数和
代码语言:javascript
复制
# 求1~100以内所有偶数和
sum = 0
for i in range(1, 101):
    if i % 2 == 0:
        sum += i
    else:
        continue
print(sum)
  • 问题:输出200以内所有的素数,并输出素数的个数
    • 分析:素数是除了1和它本身不能被其他数整除的数字,本题采用双重for循环实现,外层遍历2~200之间所有的整数,内层循环用来判断一个数是否为素数
代码语言:javascript
复制
# 方法1
num = 0
for i in range(2, 200):
    k = True
    for j in range(2, i):
        if(i % j == 0):
            k = False
            break
    if(k==True):
        print(i)
        num += 1
print('200以内的素数有{}个'.format(num))
代码语言:javascript
复制
# 方法2
import math
num = 0
for i in range(2, 200):
    m = int(math.sqrt(i))
    k = True
    for j in range(2, m + 1):
        if(i % j == 0):
            k = False
            break
    if(k):
        print(i)
        num += 1
print('200以内的素数有{}个'.format(num))
  • continue语句和break语句的区别
    • continue只结束本次循环,而不终止整个循环的执行
    • break语句则是结束整个循环过程,不再判断循环的条件是否成立
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 问题引入
  • 0x01 while循环
  • 0x02 for循环
    • 0x03 循环嵌套
      • 0x04 break和continue
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档