Day3 循环结构以及关键词

循环结构

  • for循环
  • while循环
  1. for循环

    • 语法:

      for 变量 in 序列:

      ​ 循环体

    • 说明:

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

      • 让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体
      • 序列中元素的个数决定循环次数
      for i in 'aaa':print('hello qf')
      
  2. range函数 - 产生指定范围的数字序列

    • range(N) - 产生0~N-1的数字序列,例如:range(3) - 产生一个数字序列,里面的元素是0、1、2

    • range(M,N) - 产生M~N的数字序列,例如:range(10,15) - 产生一个数字序列,里面的元素是10、11、12、13、14

    • range(M,N,step) - 产生[M,N)的一个数字序列,步长step(每次增加Step)

      for i in range(3):print('循环体')for i in range(1,5):print('i',i)for z in range(19,9,-2):print('z:',z)
      

      练习1:打印100以内所有的偶数

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

      练习2:统计100以内奇数的个数

      count = 0
      for i in range(1,100,2):count +=1
      print('100以内奇数个数:',count)
      

      练习3:统计100以内能被3整除的偶数的个数

      count = 0
      for i in range(0,100,6):count +=1
      print('100以内能被3整除的偶数的个数:',count)
      

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

      mount = 0
      for i  in range(101):mount += i
      print('1+2+3+...+100的和:',mount)
      

  1. while循环

    • 语法:

      while 条件语句:

      ​ 循环体

    • 说明:

      • while - 关键字,固定写法
      • 条件语句 - 任何有结果的表达式(除了赋值语句)
      • : - 固定写法
      • 循环体 - 和while保持一个缩进的一条或者多条语句(需要重复执行的代码)
    • 执行过程:先判断条件语句是否为True,如果是则执行循环体;执行后再判断条件语句是否为True,为True就再执行循环体…以此类推,当条件语句结果为False时,循环结束.

      for和while的选择

      • 循环次数确定 – for循环
      • 循环次数不确定 – while循环

      练习:猜数字

      import random
      num = random.randint(0,100)
      num1 = int(input('请输入一个数'))
      count = 1
      while 1:if num1 != num:if num1 > num:print('大了,再小一点儿')else:print('小了,再大一点儿')else:print('恭喜你猜对啦,总共猜了:',count,'次')if count < 3:print('哇,你真是太聪明了')elif count <8:print('还不错,下次你一定可以更快的')else:print('你也太菜了叭')num1 = int(input())count += 1
      

关键字

循环关键字:continue、break、else、

  1. continue - 结束一次循环(中能用于循环体)

    执行循环体的时候如果遇到continue,当次循环直接结束,直接进入下一次循环

    for x in range(3):print('___')print('+++++')continueprint('=======')
    
  2. break - 结束整个循环(只能用于循环体)

    执行循环体时如果遇到break,整个循环结束

    for x in range(3):print('___')print('+++++')breakprint('=======')
    

    使用while循环的套路:

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

  3. else

    for 变量 in 序列:
    循环体
    else:
    代码段

    while 条件语句:
    循环体
    else:
    代码段

    总结:

    • else的存在不影响原来循环的执行

    • else后面的代码段再循环自然死亡的时候会执行,循环因为遇到break而结束的时候else后面的代码不会执行

      for x in range(3):print('qianfeng')
      else:print('heima')
      

基础题

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

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

    for i in range(100,201):g = i % 10s = i // 10 % 10if g % 3 ==0 or s % 3 == 0:print(i)
    
    num = 100
    while num < 200:g = num % 10s = num // 10 % 10if g % 3 ==0 or s % 3 == 0:print(num)num +=1
    

进阶题

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

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

 for i in range(2,101,10):if not i % 3 :print(i)
  1. 输入任意一个正整数,求他是几位数?

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

    num = int(input())
    count = 0
    while num != 0:num //= 10count += 1
    print('这个数是',count,'位数')
    
  2. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是

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

    for i in range(100,1000):if (i % 10)**3+(i // 10 % 10)**3+(i // 100) == i:print(i)
    

挑战题

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

    num = int(input())
    count = 0
    for i in range(2,num):if num % i == 0:count +=1
    if count == 0:print(num,'是素数')
    else:print(num,'不是素数')
    

    优化

num = int(input())
for x in range(2,num**0.5+1):if num % x == 0:print(num,'不是素数')
else:print(num,'是素数')
  1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
n = int(input('请输入一个的整数'))while True:if n == 0:print('n=',1)breakelif n == 1:print('n=',1)breakelse:a = 1b = 1c = a + bfor i in range(2,n):c = a+ba = bb = cprint('n=',c)break

优化:

pre1 = 1
pre2 = 1
n = int(input('请输入一个整数'))
if n == 1 or n == 2:print('n = :',1)
else:for x in range(n-3):pre1,pre2 = pre2,pre1+pre2print('n = :',pre1+pre2)
  1. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

    for row in range(1,10):for column in range(1,row+1):print(row,'*',column,'=',row*column,end=' ')print('',end='')print()
    
  2. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)

    for i in range(0,33):for j in range(0,50):for k in range(0,100):if i + j + k == 100 and 3 * i + 2 * j + 0.5 * k == 100:print('大马:'i,'中马:'j,'小马:'k)
    

    优化:

    for big in range(0,33):for middle in range(0,(100-big)//2+1):small = 100 - big - middleif small % 2:continueif big * 3 + middle * 2 + small * 0.5 == 100:print('大马:',big,'中马',middle,'小马',small)
    

Day3 循环结构以及关键词相关推荐

  1. 分支结构,循环结构,for循环,九九乘法表

    一:复习 ''' 1.变量名命名规范-- 1.只能由数字.字母 及 _ 组成-- 2.不能以数字开头-- 3.不能与系统关键字重名-- 4._开头有特殊含义-- 5.__开头__结尾的变量,魔法变量- ...

  2. python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东):配 ...

  3. 第四章:条件语句(if)和循环结构(while)

    1.流程控制 含义与作用 Python程序执行,一定按照某种规律在执行 a.宏观一定是自上而下(逻辑上方代码一定比逻辑下方代码先执行):顺序结构 b.遇到需要条件判断选择不同执行路线的执行方式:分支结 ...

  4. 不属于python循环结构的是( )_Python语句print(type(['a','1',2,3]))的输出结果是哪一项?_学小易找答案...

    [简答题]整数的二进制.八进制.十六进制都用什么格式表示?将十进制数转换为二进制.八进制.十六进制的函数是什么? [单选题]Python语言属于以下哪一种语言? [简答题]叙述pass语句的作用. [ ...

  5. c语言里凤霞答案,C语言中循环结构的教学方法研究

    摘要:文章从C语言课程的教学现状入手,分析了大班教学模式存在的问题,提出了新的教学方法.循环结构是C语言教学中的重点和难点.本文以双重循环中九九乘法表的输出为例探讨了在教学过程中如何设计才能把一个复杂 ...

  6. Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东): ...

  7. Python_Task02:条件、循环结构

    条件.循环结构 学习教程 条件语句 1. if 语句 2. if - else 语句 3. if - elif - else 语句 4. assert 关键词 循环语句 1. while 循环 2. ...

  8. c语言程序设计 徐庆生,C语言中循环结构程序课的教学设计与探讨.doc

    C语言中循环结构程序课的教学设计与探讨 摘要:循环结构的程序设计是面向过程的程序设计课程的核心部分,掌握好循环结构的程序设计技术对学好此类课程至关重要.本文重点介绍了"C语言程序设计&quo ...

  9. android页面布局4*4乘法表,day4(分支结构,循环结构,for循环,九九乘法表)

    一:复习 ''' 1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开头__结尾的变量, ...

最新文章

  1. python学习之路基础篇(第四篇)
  2. HBase-Shell-数据结构-原理
  3. Python 字符串改变
  4. PyCharm中目录directory与包package的区别
  5. ASP.Net全局变量的设置和读取方法
  6. Programming with gtkmm 3
  7. JAVA通信编程(三)——TCP通讯
  8. 数据结构与算法--死磕二叉树
  9. 外卖红包深度研究报告:千亿市场下的公号私域
  10. C语身教程第十章:文件(8)
  11. 强化学习进阶【逆强化学习】
  12. 谷歌浏览器如何正确离线网页
  13. win10动态桌面_win10动态桌面如何设置?电脑炫酷动态壁纸
  14. vscode快速下载方法
  15. 神器 git clean
  16. 程序员的情怀《从前慢》木心
  17. 【计算机网络四】网络层
  18. 招行金葵花,经典白,银钻,AE白问题总结贴
  19. 【最优估计学习笔记】贝叶斯公式的深入理解
  20. Vue学习之路第八篇:事件修饰符

热门文章

  1. win10找不到打印机_Win10系统如何连接和找寻打印机?
  2. 写在微信小程序上线之夜,我想对移动开发人员说别慌先玩玩AR压压惊!
  3. ARM Soc芯片厂家对比
  4. 爱签区块链电子签名助力知产保护数字化
  5. linux内核 list.h,Linux内核list.h链表分析
  6. docker(6):仓库
  7. box-shadow: inset 0 -1px 0 0
  8. ValueError:Dimension must be equal ,but for rnn_layer/bidirection_rnn/fw/fw/while/fw/multi_rnn_cell/
  9. 2020给图片加标签、链接
  10. 服务器双路性能双倍,为什么服务器CPU可以双路甚至多路