zoukankan      html  css  js  c++  java
  • python之3种控制流语句(if,for,while)

    1.if条件语句

    (1)if条件语句 (比较/逻辑/成员运算均可)

    # 方法1
    
    if 条件1:
      # 条件1成立执行的代码1
    elif 条件2:
      # 条件2成立执行的代码2
    elif 条件3:
      # 条件3成立执行的代码3
    else# 条件不成立执行的代码
    
    # 方法2
    
    if 条件:
               子语句
    else:
               子语句

    2.for语句

    (1)遍历一个常量

    for item in 某个数据类型(字符串,列表,元组,字典,集合):
      代码块

    (2)循环次数

    for  i  in range(起始值,结束值,步长): # 取头不取尾
        代码块
    • 遍历字典:得到字典的键

    for k in dic.keys():
    • 遍历字典的值:dic.values()
    for v in dic.values():
    • 遍历字典的键值对:dic.items(),遍历出来的是元组
    for item in dic.items(): # item返回的结果是元组 (遍历出来的是元组)
    
    #
    方法2 for k,v in dic.items(): # 元组格式才可以多变量,字典、列表、字符串不可以   # k--> 接收键   # v--> 接收值
    • 补充:元组拆包
    a,b = (111,222)
    print(a) # 111
    print(b) # 222

    (3)for与break,continue,else

    • for-else: for循环正常结束会运行,else下面的代码,如果循环非正常结束(break终止循环),则不会运行
    user = [{"name":"py01","pwd":"123"},{"name":"py02","pwd":"123"},{"name":"py03","pwd":"123"},{"name":"py04","pwd":"123"}]
    # 查询“py03”这个用户是否在列表中
    for item in user:
      if item["name"] == "py03":
        print("py03在user中")
        break
    else:
      print("py03不在user中")

    (4)for循环嵌套使用

    # for 循环嵌套使用
    for i in range(1,6): # 行数
      for j in range(1,i+1):
        print(j,end=' ')
      print('')

    3.while语句

    先判断while后面的条件表达式是否成立;如果成立,执行代码块,否则不进入代码块;执行完毕后,继续判断,直到不进入代码块为止

    while 条件表达式(逻辑,成员,比较,空数据,布尔值): # 空数据==False,非空数据==True
      代码块/循环体(条件为True执行操作)  # 如果条件一直成立,则一直循环做条件满足的事情,直到条件不成立。结束循环
    • break:终止循环,跳出循环体
    • continue:中止当前本来循环,开启下一轮循环
      while True:
          s = (input("Enter something:"))
          if s == 'quit':
              break
          if len(s) < 3:
              print('Too small')
          continue
          print('输出字符串的长度',len(s))
      print('Done')

      输出结果为:

    >>> ================================ RESTART ================================
    >>> 
    Enter something:12
    Too small
    Enter something:123
    Enter something:1234
    Enter something:quit
    Done

    (1) while-else:while条件不成立的时候执行

    n = 0
    while n<10:
      print(n)
      if n == 5:
        break
      n += 1
    else:
      print('while循环对应的else')

     (2)while-(if-else)组合

    #找出10-12岁的小女孩的总人数,询问10次
    
    i = 10
    count = 0
    while i>0:
        sex = input('请问你的性别是:')
        if sex == '':
            age = int(input('请问你多大:'))
            if 10<=age<=12:
                print('恭喜你,你符合条件')
                count+=1
            else:
                print('很遗憾,不符合条件')
        else:
            print('很遗憾,不符合条件')
        i-=1
    print("10-12岁小女孩的总人数为:", count)

    (3)综合应用

    # 例如:password = {'admin':'123321','user1':'123456'}
    # 1.设计一个登录程序,不同的用户名和对应密码存在一个字典里面,输入正确的用户和密码去登录
    # 2.首先输入用户名,如果用户名不存在或为空,则一直提示输入正确的用户名
    # 3.当用户名正确时,提示去输入密码,如果密码跟用户名不对应,提示密码错误请重新输入
    # 4.如果密码输入错误超过3次,中断程序运行
    # 5.当输入密码错误时,提示还有几次机会
    # 6.用户名和密码都输入成功的时候,提示登录成功
    
    loginMessage = {'username1': '1234','username2': '1234','username3': '1234','username4':'1234','username5': '1234'}
    
    count = 0 # 密码输入次数
    while True:
        username = input('请输入用户名:')
        if username in loginMessage.keys():
            while count <= 3:
                pwd = input('请输入密码:')
                if pwd == loginMessage[username]:
                    print("登录成功!")
                    break
                else:
                    count+=1
                    print("密码错误,请重新输入")
                    print("还有{0}次机会修改密码".format(3 - count))
            break
    
        elif username not in loginMessage.keys() or username =='':
            print("用户名错误,请重新输入")
  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/kite123/p/11357164.html
Copyright © 2011-2022 走看看