什么是分支+循环?

--不同条件进行不同逻辑处理              -- 分支

--满足条件进行反复相同逻辑处理       -- 循环

分支的形式?

-- if 条件:

      执行体

     else:

   执行体

--if 条件1:

执行体1

#!/usr/bin/python3

def select_go(weather):
    # 分析:假定天气为下雨,后面的都是假设,如果,就,else:后面不符合逻辑,嗯哼
    if weather == 'rainy':
        print('高兴的出去堆雪人,然后太冷了,又回来')
    else:
        print('天气和我有关系么')

if __name__ == '__main__':
    weather = 'rainy'
    select_go(weather)

elif 条件n:

执行体n

else:

执行体

#!/usr/bin/python3

def select_go(weather):
    # 分析:假定天气为下雨,后面的都是假设,如果,就,else:后面不符合逻辑,嗯哼
    if weather == 'snowy':
        print('高兴的出去堆雪人,各种浪')
    elif weather == 'sunny':
        print('可以去公园玩,散步')
    elif weather == 'windy':
        print('只得呆着家里了')
    else:
        print('嗯哼,我就是要出去,我不管,我不管')

if __name__ == '__main__':
    weather = 'rainy'
    select_go(weather)

什么是三元运符?

  --result = 值1 if 条件 esle 值2

  -- 满足条件 result =值1  不满足条件 result =值2

#!/usr/bin/python3

result = '2b' if 2 == 2 else '4b'
print(result)

result = '2b' if 2 == 4 else '4b'
print(result)

循环的形式?

--while条件:

循环体

#!/usr/bin/python3

def sum_go(sum_to):
    count = 0
    sum_all = 0
    while True:
        sum_all += count         # 进行累加
        if count == sum_to:     # 判断是否满足边界条件
            break
        count += 1              # 计数累加
        print(sum_to, count)
    return sum_all

if __name__ == '__main__':
    sum_to = 100                # 累加到100
    result = sum_go(sum_to)
    print(result)

--for i in可迭代对象     -- range()\list\dict\str\

循环体

#!/usr/bin/python3

def sum_go(sum_to):
    sum_all = 0
    for i in range(sum_to+1):
        sum_all += i
    return sum_all

def bian_li(list_1, dict_1):
    # 遍历列表
    for l in list_1:
        print(l)
    # 遍历字典
    for d in dict_1:
        print(d)                  # 遍历字典key
        print(dict_1[d], '\n')    # 通过key遍历字典value

if __name__ == '__main__':
    sum_all = sum_go(sum_to=100)
    print(sum_all)

    list_1 = [1, 2, 3, 4, 5, [6, 7], 8]
    dict_1 = {'name': '北门吹雪', 'age': 18, 'work': 'student'}
    bian_li(list_1, dict_1)

--循环中有两个跳出方法

-continue      --当前一次循环

-break           --当前整个循环

思考?能跳出循环么?

#!/usr/bin/python3

def learn(now_time, star_time, end_time):
    if star_time == now_time:
        while True:
            print('学习ing........................',star_time)
            star_time += 0.1
            if star_time == end_time:
                break
            print('还在学习ing........................')

if __name__ == '__main__':
    now_time = 9
    star_time = 9
    end_time = 11
    learn(now_time, star_time, end_time)

  结果很奇怪?

    学习ing........................ 9

    还在学习ing........................

    学习ing........................ 9.1

    还在学习ing........................

    学习ing........................ 9.2

    还在学习ing........................

    学习ing........................ 9.299999999999999

    ............

  并没有跳出循环

    -- 注意小数带来的

      -- 小数带来的坑,小数并不精准,默认在某个范围内是正确的,

       所以计算计算的时候,最好最优用整数(可以换算成整数),或者进行多次精确值比较,不然会出现莫名其妙的bug

  解决方法:

    2个小数的学习,需要循环1200次,所以以1200次为限制,递加为整数1(递加是每次循环都在上一次的基础上加1)

    -- 如下:

#!/usr/bin/python3

import time
def learn(now_time, star_time, end_time):
    intervals = (end_time - star_time)*60*60
    count = 0
    if star_time == now_time:
        while True:
            print('学习ing........................', star_time)
            print('已经学习了 %s 分钟' % (count//60))
            time.sleep(1)
            count += 1
            if count == intervals:
                print('可以结束学习了,吃饭了')
                break
            elif count % 3600 == 0:
                star_time += 1

if __name__ == '__main__':
    now_time = 9
    star_time = 9
    end_time = 11
    learn(now_time, star_time, end_time)

什么是逻辑运算符?

--进行真假判断,真为True 1 ,假为 False 0,联合  分支+循环  使用

--    >     <     ==   <=   >=   !=         --大于、小于、等于、小于等于、大于等于、不等于

--     “and”   “or”  “not“ ”is”  “is not”  ”in”  “not in”       --与、或、非、是、不是、在、不在

 #登录验证小程序

 user_ku = [['name1', 'psw1'], ['name2', 'psw2']]   # 用户验证密码库
 lock_list = []                                  # 锁定用户库,3次登录失败进入的小黑屋
 canzhao = []                                    # 登录失败的录入,如果用count数出3次,进入锁定

 while True:
     name = input('输入你的用户名:')
     psw = input('请输入你的密码:')

     if name in lock_list:                       # 判断用户是否进入小黑屋
         print('此账号锁定,不能再用此账号登陆')
         continue
     if [name,psw] in user_ku:                   # 判断用户输入的合法性
         print('登录成功')
         print('欢迎')
         break
     else:
         canzhao.append(name)                    # 用户名录入
         print('账号或者密码输入错误,请重新输入')
     if canzhao.count(name) == 3:                # 同用户3次登录失败进入的小黑屋
         lock_list.append(name)                  # 进入小黑屋

  -- “in”“ not in” 是判断元素是否在列表和字典中的有效方法

如何实现一个多级菜单,可以退出和返回上一级?

 # 多级菜单循环以及返回和退出
 dic1 = {'湖南':
             {'衡阳':
                  {'珠晖区':'湖南工学院'},
              '湘潭':
                  {'晖晖':'啦啦'}},
         '北京':
             {'朝阳':
                  {"德玛:北京大学"}}}
 print('按q返回上一层')
 print('按e退出')
 ec = 'q'                                    # 返回上一级
 ex = 'e'
 ex_while = True                             # 退出程序
 for i in dic1:                              # 打印一级菜单
     print(i)
 while True:                                 # 进入一级菜单选择
     choice1 = input('请输入1>>>:')
     if choice1 in dic1:                     # 判断是否在字典中
         for i1 in dic1[choice1]:
             print(i1)                       # 打印值

         while True:
             choice2 = input('请输入2>>>:')  # 进入二级菜单选择
             if choice2 in dic1[choice1]:
                 for i2 in dic1[choice1][choice2]:
                     print(i2)

                 while True:
                     choice3 = input('请输入3>>>:')     # 进入三级菜单选择
                     if choice3 in dic1[choice1][choice2]:
                         for i3 in dic1[choice1][choice2][choice3]:
                             print(i3)

                     elif choice3 == ec:                 # 返回判断
                         for i2 in dic1[choice1][choice2]:
                             print(i2)                   # 打印上一级菜单
                         break

                     elif choice3 == ex:                 # 退出判断
                          exit('退出中……ing')             # 退出整个程序
                     else:
                         print('输入错误,请重新输入,么么哒')

             elif choice2 == ec:                         # 返回判断,并打印上一级菜单
                 for i1 in dic1[choice1]:
                     print(i1)
                 break
             elif choice2 == ex:                         # 退出判断
                 exit('退出中……ing')
             else:
                 print('输入错误,请重新输入,么么哒')

     elif choice1 == ec:                                 # 返回判断
         print('已经最顶级菜单,完全退出请输入 e ')
         continue
     elif choice1 == ex:                                 # 退出判断
         exit('退出中……ing')
     else:
         print('输入错误,请重新输入,么么哒')

python_分支循环的更多相关文章

  1. 第十九节:Java基本数据类型,循环结构与分支循环

    基本数据类型 Java中的基本数据类型,有8种,在Java中有四种类型,8种基本数据类型. 字节 boolean 布尔型为1/8 byte 字节类型为1 short 短整型为2 char 字符型为2 ...

  2. 第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告

    一.实验题目,设计思路,实现方法 第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数) 设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法:2-7 运用 ...

  3. java基础二 分支循环

    分支循环:    if...    if...else...    if...else if...    if...else if...else...    switch...case...defau ...

  4. Vue 分支循环

    分支循环 在Vue中,分支循环也是使用标签属性指令完成的,这一点与后端模板语法不太相同. v-for 下面是通过v-for进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ...

  5. Swift学习(三)类型推导&基本运算&分支&循环

    一.Swift中类型推导&基本运算 Swift中类型推导 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略 查看标识符 ...

  6. python 分支 循环

    一  python 知识点      1.变量(标签):           a(变量名) = '字符串'or 数字 (整形和浮点型)     a相当于变量名的标签           如: a = ...

  7. 分支&循环

    分支 单分支 if 条件: 满足条件后要执行的代码 双分支 if 条件: 满足条件执行代码 else: if条件不满足就走这段 多分支: if 条件: 满足条件执行代码 elif 条件: 上面的条件不 ...

  8. python的分支循环

    知识内容: 1.if-else分支结构 2.while循环 3.for循环 4.循环结构综述 5.break和continue语句 一.if-else分支结构 1.单分支选择结构 if 表达式: 语句 ...

  9. Oracle数据库之SQL基础和分支循环

    一.SQL基础语言 DECLARE --声明 a ); --变量或对象 BEGIN a:='小明';-- := 表示给一个变量赋值 dbms_output.put_line(a); --输出用 dbm ...

随机推荐

  1. 浅谈Vue模板的那些事儿

    接触过vue的童鞋都知道,组件的模板一般都是在template选项内定义的,如 Vue.component('child-component', { template: '<h3>我是闰土 ...

  2. ionic2 App搭建(三)

    cmd命令提示框中进入项目文件夹 运行命令 ionic serve --lab  结构如下图 这里数据是没有接受到的,是因为跨域的问题,解决方案是谷歌浏览器配置跨域指令如下: 配置chrome浏览器允 ...

  3. iOS 开发 右滑返回上一级控制器

    #import <objc/runtime.h> @interface UINavigationController (Transition)<UIGestureRecognizer ...

  4. Scala之String

    一.前言 大数据领域的Spark.Kafka.Summingbird等都是由Scala语言编写而成,相比Java而言,Scala更精炼.由于笔者从事大数据相关的工作,所以有必要好好学习Scala语言, ...

  5. Go并发模式:管道与取消

    关键字:Go语言,管道,取消机制,并发,sync.WaitGroup,包引用,通道,defer,select GO并发模式:管道与取消 简介 Go的并发能力可以使构建一个流数据管道变得非常容易,并且可 ...

  6. 线程池的使用及ThreadPoolExecutor的分析(一)

    说明:本作者是文章的原创作者,转载请注明出处:本文地址:http://www.cnblogs.com/qm-article/p/7821602.html 一.线程池的介绍 在开发中,频繁的创建和销毁一 ...

  7. 从头开始基于Maven搭建SpringMVC+Mybatis项目(1)

    技术发展日新月异,许多曾经拥有霸主地位的流行技术短短几年间已被新兴技术所取代. 在Java的世界中,框架之争可能比语言本身的改变更让人关注.近几年,SpringMVC凭借简单轻便.开发效率高.与spr ...

  8. Python 操作 GA API 指南

    因为需要写一个 Blog Feature 的缘故,所以接触了下 GA 的 Python API,发现 G 家的 API 不是那么直观,比较绕,但是,在使用过程中发现其实 G 家的 API 设计挺有意思 ...

  9. IntelliJ IDEA 17和Maven构建javaWeb项目

    前言 电脑又断电了,眼看着写好的东西就没有了,这是第二次犯这个错误了.很难受呀!还是回到正题吧,我们来使用IDEA和Maven构建一个JavaWeb项目 软件环境: IDEA:2017.2.1 JDK ...

  10. [翻译].NET Shell Extensions - Shell Context Menus---.net 外壳扩展-右键菜单

    我自己的前言说明: 本文原作者为    Dave Kerr,原文链接为.NET Shell Extensions - Shell Context Menus:,我是在为了完成最新需求的时候查询资料的时 ...