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. Linux的notifier机制在TP中的应用【转】
  2. java 华为面试题_JAVA华为面试题
  3. Linux安装ImageMagick与JMagick完成过程及配置
  4. 异步(python 版)
  5. C# 中的readonly属性
  6. DHCPv4技术原理
  7. 3dmax2014 uv用法_3dmax中UV贴图的使用方法
  8. 客户画像、精准营销与数字化运营
  9. 1373:鱼塘钓鱼(fishing)
  10. 兼容性和浏览器hack
  11. 【转帖】刘备三顾茅庐,请Elasticsearch出山
  12. 好用的菜单栏翻译软件Bob使用教程,Bob怎么打开录屏权限
  13. POJ 1436.Horizontally Visible Segments-线段树(区间更新、端点放大2倍)
  14. Python 相异性矩阵计算
  15. 粉笔公考——错题集——行测
  16. ubuntu下查看显卡型号
  17. WordPress Avada主题评测:非常受欢迎但值得吗? (2022)
  18. HTTPS与TOKEN
  19. 必备技能 |《 Python数据挖掘》之什么是哑变量?
  20. 细数那些最令人难忘的电视剧

热门文章

  1. 安装Ubuntu和Windows10双系统
  2. usb蓝牙适配器 linux,树莓派用USB蓝牙适配器连接蓝牙设备
  3. SAP-常见取数逻辑-001-用户信息
  4. 【转】My Three Stories 乔布斯的三部曲
  5. SQL Sever 各版本下载
  6. 福禄克光纤测试功率计
  7. IOC和DI入门案例
  8. Mutli-Head Attention 和 Self-Attention 的区别与联系
  9. java程序通过腾讯邮箱发送邮件失败:javax.mail.AuthenticationFailedException: 535 Error: authentication failed, syste
  10. 9个非常有趣的HTML5 Canvas动画特效合集