• while循环和格式化输出


    1. while循环

    while 循环 在生活中,我们遇到过循环的事情吧?比如循环听歌。在程序中,也是存才的,这就是流程控制语句 while

    • 基本循环
    while 条件:
        # 循环体
        # 如果条件为真,那么循环则执行
        # 如果条件为假,那么循环不执行
    

    img

    条件如果为真就会一直执行下去 也就人们常说的死循环,我们想要停止就点那个红色的方块,如果点击的x的话,程序并没有停止,还在继续运行着

    我们可以使用while循环进行内容循环,我们怎么能够让程序停止运行?

    刚刚说到,死循环是因为条件一直都为真的时候,如果想让while循环停止最简单的方式就是将条件修改成假的,看下面示例

    flage = True
    str_num = input("请输入要比较的数字:")
    print("进入循环")
    while flage:
      if "3" > str_num:
        print("在执行循环")
      else:
        print("要终止循环")
        flage = False
    print("退出循环")
    

    我们现在知道可以通过变量的形式改变while循环,我们还可以通过计数的方式来控制循环执行循环的次数,先来看一下

    • 使用while计数
    count = 0
    while True:
        count = count + 1
        print(count)
    

    img

    这样下去我就会执行下去,但是我想到100就停了

    • 控制while循环的次数
    count = 0
    while count < 100:
        count = count + 1
        print(count)
    

    img

    while 关键后边的是条件,这样就可以通过条件成功的控制住循环的次数,我们现在知道通过修改while后边的内容来终止循环,这是咱们自己想的办法,python这个编程语言中是不是应该也得有个终止循环的关键字什么的吧,我们来找一下试试

    • break关键字

    我们除了可以使用条件能够让循环停止,其实Python还给我们提供了一个break关键字来停止循环

    num = 1
    while num <6:
        print(num)
        num+=1
        break
        print("end")
    

    img

    当程序执行到break的时候就结束了.break就是结束当前这个while循环的 break以下的代码都不执行

    • continue关键字

    continue 用于退出当前循环,继续下一次循环

    num = 1
    while num <6:
        print(num)
        num+=1
        continue
        print("end")
    

    img

    注意:break是终止循环,continue是跳出本次循环,继续下次循环

    • while else使用
    # 循环一
    while True:
        if 3 > 2:
            print('你好')
            break
    else:
        print('不好')
    
    
    # 循环二
    while True:
        if 3 > 2:
            print('你好')
    print('不好')
    
    # 大家看到的这个是不是感觉效果是一样的啊,其实不然
    # 当上边的代码执行到break的时候else缩进后的内容不会执行
    

    img

    这个执行的效果是因为

    循环一执行了循环也执行了if条件打印了你好然后碰到break循环结束了
    
    循环二执行了循环也执行了if条件打印了你好,但是没有break 就继续重复执行了
    
    循环一将3>2改成3<2这个条件就不成立,然后执行了else里打印了不好
    
    • while else 练习

    首先让用户输入序号选择格式如下:

    0.退出
    1.开始登录
    如果用户选择序号0 就提示用户退出成功
    如果用户选择序号1就让用户输入用户名密码然后进行判断,正确就终止循环,错误重新输入
    

    2. 格式化输出

    现在有个需要我们录入我们身边好友的信息,格式如下:

    ------------ info of Alex Li ----------
                 Name  : Alex Li
                 Age   : 22
                 job   : Teacher 
                 Hobbie: girl
        ------------- end ----------------
    

    我们现在能想到的办法就是用一下方法:

    name = input('请输入姓名:')
    age = input('请输入年龄:')
    job = input('请输入职业:')
    hobby = input('请输入爱好:')
    a = '------------ info of Alex Li ----------'
    b = 'Name:'
    c = 'Age:'
    d = 'Job:'
    e = 'Hobby:'
    f = '------------- end ----------------'
    print(a+
          '
    '+
          b+
          name+
          '
    '+
          c+
          age+
          '
    '+
          d+
          job+
          '
    '+
          e+
          hobby+
          '
    '+
          f)
    
    # 运行结果
    ------------ info of Alex Li ----------
    Name:meet
    Age:18
    Job:it
    Hobby:3
    ------------- end ----------------
    

    这样写完全没有问题,但是会不会比较繁琐呢,有些大佬肯定会想这不都实现了吗,还逼叨逼什么啊,那是没有体验过格式化输出有多霸道,我们现在来体验下霸道的姿势

    • %s
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    job = input('请输入职业:')
    hobby = input('请输入爱好:')
    msg = '''
    ------------ info of Alex Li ----------
    Name  : %s
    Age   : %s 
    job   : %s 
    Hobbie: %s 
    ------------- end ----------------
    
    '''
    print(msg%(name,age,job,hobby))
    

    我们但从代码的数量来看,这样就比那样的少,看到这里有细心的老铁们肯定在想%s这是啥玩意?

    % 是一个占位, 回想下我们小时候给朋友占位子的场景,是的这个就是占位.那s又是什么呢? s代码的字符串类型;

    img

    • %d|%
    name = input('>>>')
    s1 = '1234%d'%int(name)
    s2 = '1234%i'%int(name)
    print(s1)
    print(s2)
    
    结果:
    >>>89
    123489
    123489
    # %d和%i这种格式化只能用数字来填补占位
    
    • %%
    num = input('>>>')
    s= '目前学习进度:%s%%'%num
    print(s)
    
    结果:
    >>>80
    目前学习进度:80%
    
    # 如果我们字符串中想要显示单独的%就需要用来个%%来转义,不然程序会认为那是一个占位
    

    format格式化输出

    • 通过顺序来传递参数

      print(('{1},{0},{1}').format('boy','girl'))
      
    • 通过变量名来传递参数

      print(('{name}:{url}').format(name='python',url='www.python.org'))
      
    • 通过字典来传递参数

      dict={'name':'boy','sex':'男'}
      print(('{name},{sex}').format(**dict))
      
    • 通过列表来传递参数

      list=['boy','男','25']
      list1=['哈哈','呵呵']
      print(('{0[0]},{0[1]},{0[1]}').format(list,list1)
      
    • python3.6以上新增f格式化方法

      name='lijie'
      age=3
      s=f'姓名:{name},年龄:{age}'
      print(s)
      

  • 相关阅读:
    myeclipse web 包名保留字与servlet冲突
    java.lang.IllegalStateException
    request 和response 中的setCharacterEncoding区别
    java.lang.ClassNotFoundException: com.servlet.HandlesearchclassesServlet
    sql server 2008 com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机
    理解java reference
    Java 内存区域和GC机制
    Tomcat配置HTTPS方式
    百度分享不支持https的解决方案
    Spring对Hibernate事务管理
  • 原文地址:https://www.cnblogs.com/luckinlee/p/11619633.html
Copyright © 2020-2023  润新知