一、if 判断
  语法一:
    if 条件:
   # 以下是上一条if 的子代码块
      print(子代码1)
      print(子代码2)
      print(子代码3)

  if 运行完之后会执行代码下方 上一缩进级 的代码块

  语法二:
  if 条件:
  # 以下缩进级是条件成立时执行的代码块
    print(子代码1)
    print(子代码2)
    print(子代码3)
  else:
  # 以下缩进级是条件不成立时执行的代码块
    print(子代码4)
    print(子代码5)
    print(子代码6)

  语法三:
  if 条件1:
    print(子代码1)
    print(子代码2)
    print(子代码3)
  elif 条件2:
    print(子代码4)
    print(子代码5)
    print(子代码6)
  elif 条件3:
    print(子代码7)
    print(子代码8)
    print(子代码9)
  else:
    print(子代码10)
    print(子代码11)
    print(子代码12)

  示例:
  # 需求描述:
  如果成绩 >= 90,那么:优秀
  如果成绩 >= 80且 < 90, 那么:良好
  如果成绩 >= 70且 < 80, 那么:普通
  其他情况:很差

  score = input('please input your score')

  if score >= 90:
    print('优秀')
  elif score >= 80:
    print('良好')
  elif score >= 70:
    print('普通')
  else:
    print('很差')

  语法四:(if判断的嵌套)
  sex = 'female'
  age = 18
  is beautiful = True
  is cuccessful = True

  if sex == 'female' and age == 18 and is beautiful:
    print('开始表白')
  if is cuccessful:
    print('在一起')
  else:
    print('有缘无分')
  else:
    print('阿姨好')

二、while循环
  语法:
  while 条件:
    print('代码1')
    print('代码2')
    print('代码3')

  示例:
  # 循环输入账号密码,并嵌套if判断来打印相输入账号密码后的结果
    while True:
      name = input('please input your name:')
      pwd = int(input('please input your password'))
      if name == 'egon' and pwd == 123
        print('login successful')
      else:
        print('username or password error')

  结束while循环的两种方式:
    方式一:将while条件改为False
        在条件改为False时不会立即结束掉循环,而是要等到下一次循环判断条件时才会生效

    示例:
    # 在输入正确账号密码之后就停止再次输入账号
      tag = True # 将True赋值给一个变量,让变量的真假成为条件,通过更改变量的真假来达到改变条件的真假
      while tag:
        name = input('please input your name')
        pwd = input('please input your password')
        if name == 'egon' and pwd == 123:
          print('login successful')
          tag = False
        else:
          print('username or password error')

  方式二:while + break
      break一定要放在循环体内,一旦循环体执行到break就会立即结束本层循环

    示例:
    # 在输入正确账号密码之后就停止再次输入账号
      while True:
        name = input('please input your name')
        pwd = input('please input your password')
        if name == 'egon' and pwd == 123'):
          print('login success')
          break
        else:
          print('username or password error')

       中止while的方式:(不是终止)
       while + continue:结束本次循环,直接进入下一次循环

    示例:
    # 除了4,取1-6
    count = 1
    while count < 7:
      if count == 4:
        count += 1

  因为本次循环到此结束,想要让代码继续运行下去,就必须要对count今天增量赋值
  continue下面的增量赋值指令是无法被执行的,但是增量赋值还是要进行
  所以加在contine上面

          continue
        print(count)
        count += 1

  注意:continue加在循环的最后一行便是无用代码,

     因为循环最后一行运行完之后自动会重新进行循环,无需continue来中止循环

  while循环的嵌套:

    while 条件1:

      while 条件2:
        代码1
        代码2
        代码3

  示例一:
    在输错就循环,输对就结束程序的基础上加上:
    输对之后进入下一层功能界面,其中的退出功能可直接终止循环
    while True:
      name = input('please input your name')
      pwd = input('please inpunt your password')
      if name == 'egon' and pwd == '123':
        print('login successful')
          while True:
            print('''
            0 退出
            1 取钱
            2 转账
            3 查询
            ''')
            choice = input('请选择您要执行的操作:')
            if choice == '0':
              break # 终止此层循环,执行上一缩进级的吓一条代码,即 #1 break
            elif choice == '1':
              print('取钱')
            elif choice == '2':
              print('转账')
            elif choice == '3':
              print('查询')
            else:
              print('操作有误,请重新选择:')
              break # 此处为 #1 break
      else:
        print('用户名或者密码错误!')

  示例二:
    # 两个while循环使用相同的可变量True ,只要运行到 '0 退出'就直接封锁所有whjle循环
    tag = True
    while tag:
      name = input('please input your name:')
      pwd = input('please input your password:')

      if name == 'egon' and pwd == '123':
        print('login successgul')
        while tag:
          print('''
          0 退出
          1 取款
          2 转账
          3 查询
          ''')
          choice = input('请选择您要执行的操作:')
          if choice == '0':
            tag = False
          elif choice == '1':
            print('取款')
          elif choice == '2':
            print('转账')
          elif choice == '3':
            print('查询')
           else:
          print('操作有误,请重新选择:')
      else:
        print('用户名或者密码错误!')

三、for循环
  for循环的强大之处在于循环取值

  示例:
  # 取出列表中的值并打印
    list = [a,b,c,d,e]
    # 使用while循环取值:
    i = 0
    while i < 6:
      print(list[i]) # i作为整型变量充当列表中的索引存在于 list[i]中,从而达到 顺延索引值 来取值的效果
      i += 1
    # 使用for循环取值:
    for i in list:
    # 这层for循环第一次循环时,这一行其实就是 i = list[1],把列表中的第一个值赋值给i
      print(i)

  # 取出字典中的值并打印
    dic={'name':'egon','age':18,'gender':'male'}
    for i in dic:
      print(i,dic[i])
      # 这里的i为字典中的key,故dic[i]则为字典中key_i对应的value

  for + continue:中止本次for循环(不是终止)

  示例:
  # 打印到xx就跳过此次打印
    nums=[11,22,33,44,55]
    for i in nums:
      if i == 44
      continue
      print(i)

  for + break:终止本层for循环

  示例:
  # 打印到xx就停止打印
  nums=[11,22,33,44,55]
  for i in nums:
    if i == 44:
      break
    print(i)

  for + else :

  示例:
  names=['egon','kevin1111_dsb','alex_dsb','mac_dsb']
  for name in names:
    if name == 'kevin1111_dsb'
      break # 一旦因break而终止循环的情况,上一个缩进级的else代码便不会被执行
      print(name)
    else:
      print('else测试代码')

  for + range():
  range的用法
  >>> range(1,5)
    [1, 2, 3, 4]
  >>> for i in range(1,5):
    ... print(i)
    ...
      1
      2
      3
      4
  >>> range(1,5,1)
    [1, 2, 3, 4]
  >>> range(1,5,2) # 1 3
    [1, 3]

  for循环的嵌套:

  示例:
  for i in range(3):
    for j in range(4):
      print(i,j)
  # 无法理解的就看下面的代码,即将range转换为列表方便理解
  for i in [0,1,2]: # i=1
    for j in [0,1,2,3]: # j=1
  # 执行完下层缩进级的for循环,
   才会回到上层缩进级的for循环去继续循环未完成的上层循环
      print(i,j)

DAY4 if、while和for的更多相关文章

  1. python_way,day4 内置函数(callable,chr,随机验证码,ord),装饰器

    python_way,day4 1.内置函数 - 下 制作一个随机验证码 2.装饰器 1.内置函数 - 下 callable() #对象能否被调用 chr() #10进制数字对应的ascii码表中的内 ...

  2. Spark菜鸟学习营Day4 单元测试程序的编写

    Spark菜鸟学习营Day4 单元测试程序的编写 Spark相比于传统代码是比较难以调试的,单元测试的编写是非常必要的. Step0:需求分析 在测试案例编写前,需完成需求分析工作,明确程序所有的输入 ...

  3. Spark Tungsten揭秘 Day4 内存和CPU优化使用

    Spark Tungsten揭秘 Day4 内存和CPU优化使用 今天聚焦于内存和CPU的优化使用,这是Spark2.0提供的关于执行时的非常大的优化部分. 对过去的代码研究,我们会发现,抽象的提高, ...

  4. Catalyst揭秘 Day4 analyzer解析

    Catalyst揭秘 Day4 analyzer解析 今天继续解析catalyst,主要讲一下analyzer,在sql语句的处理流程中,analyzer是在sqlparse的基础上,把unresol ...

  5. Kakfa揭秘 Day4 Kafka中分区深度解析

    Kakfa揭秘 Day4 Kafka中分区深度解析 今天主要谈Kafka中的分区数和consumer中的并行度.从使用Kafka的角度说,这些都是至关重要的. 分区原则 Partition代表一个to ...

  6. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  7. Day4 - Python基础4 迭代器、装饰器、软件开发规范

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  8. ##DAY4 事件的基本概念、触摸的基本概念、响应者链、手势

    ##DAY4  事件的基本概念.触摸的基本概念.响应者链.手势 #pragma mark ———————事件的基本概念 ——————————— 事件的基本概念: 1)事件是当用户的手指触击屏幕及在屏幕 ...

  9. Day4:T1小技巧(类似于指针操作)T2搜索+小细节

    Day4:其中有很多小技巧get T1 一直没有听到过像这样的小技巧的略专业名词,有点类似于指针操作,之前有碰到过很多这样的题目 每次都是以不同的形式出现,但是感觉思想还是有点接近的吧(就比如某天有一 ...

  10. Python基础篇-day4

    本节目录: 1.字符编码 2.函数 2.1参数 2.2变量 2.3返回值 2.4递归 2.5 编程范式 2.6 高阶函数 *************************************** ...

随机推荐

  1. hihocoder [Offer收割]编程练习赛8

    第一次做这种比赛,被自己坑的好惨... A.这道题的关键其实是如果有k和n满足kD+F>nL>kD则不能走无限远,分支看似难整理,其实比较简单,F>L根本就不用算了,明摆着就是Bsi ...

  2. .net下安装 ZooKeeper.Net

    PM> Install-Package ZooKeeper.Net正在尝试解析依赖项“log4net (≥ 1.2.10)”.正在安装“log4net 1.2.10”.已成功安装“log4net ...

  3. aircrack-ng后台跑包, 成功后自动发送邮件通知

    我的思路是直接用nohup守护进程输出结构到指定文件, 然后判断文件中"KEY FOUND"的字段. 启动aircrack-ng方式 nohup aircrack-ng -w /o ...

  4. docker 容器配置tocmat时间不统一

    1.在tomcat配置文件bin下 vim   setenv.sh #!/bin/bashCATALINA_OPTS='-Duser.timezone=Asia/Shanghai'export CAT ...

  5. linux内核中的两个标记GFP_KERNEL和GFP_ATOMIC是用来干什么的?

    1. 作用 用来标记分配内核空间内存时的方式 2. 两个标记使用在什么场合? 如果内存不够时,会等待内核释放内存,直到可以分配相应大小的内存,也就意味着会发生阻塞,因此不能使用在中断处理函数中,而GF ...

  6. [NOI1995]石子合并 四边形不等式优化

    链接 https://www.luogu.org/problemnew/show/P1880 思路 总之就是很牛逼的四边形不等式优化 复杂度\(O(n^2)\) 代码 #include <ios ...

  7. ssm项目中 数据库和资源的备份

    备份 备份很重要 数据库的备份 mysqldump -u用户名 -p密码 所需要备份的数据库 > ~/backup/sql/o2o`date +%Y%m%d%H%M%S`.sql 资源的备份 t ...

  8. ORM框架 之 Entity Framework

    Entity Framework 1.ADO.NET Entity Framework是以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方案,早起被称为ObjectSpac ...

  9. p3792 由乃与大母神原型和偶像崇拜(思维+线段树)

    要求 1.修改x位置的值为y 2.查询区间l,r是否可以重排为值域上连续的一段 可以,很lxl 然后一开始思考合并区间,但是发现可以重排序,GG 然后想了特殊性质,比如求和,但是显然可以被叉 这时候我 ...

  10. Graph Convolutional Networks (GCNs) 简介

    Graph Convolutional Networks 2018-01-16  19:35:17 this Tutorial comes from YouTube Video:https://www ...