zoukankan      html  css  js  c++  java
  • 第三篇 条件控制和循环

    1.条件控制

      if语句的形式一般为:

    1 if 条件1:
    2   语句1
    3 elif 条件2:
    4   语句2
    5 else:
    6   语句3

      注意:代码的缩进为一个tab键,或者4个空格,建议使用空格。

      实例:

    age = int(input("请输入您的年龄:"))
    if age >= 18:
        print("已满18岁,可以入内")
    else:
        print("未满18岁,禁止入内")

      注意:

    • 每个条件后面要使用冒号,以表示接下来是满足条件后要执行的代码块。
    • 使用缩进来划分语句块,相同的缩进为一个代码块。
    • if和else语句以及各自的缩进部分共同是一个完整的代码块。

      在第二篇中学习到的操作符,在if语句中经常使用的比较运算符,如下:

    操作符 描述
    > 大于
    >= 大于等于
    < 小于
    <= 小于等于
    == 相等
    != 不相等

      另外,在程序开发过程中,通常需要判断多个条件,多个条件满足时才能执行后续代码,这个时候需要用到逻辑运算符,逻辑运算符可以把多个条件按照逻辑进行连接,Python中的逻辑运算符包括:and、or、not三种。

    1.1条件1 and 条件2:条件1和条件2同时成立时才返回True。

    # 判断一个数是否同时被4和6整除的条件语句,并且打印对应的结果
    num = int(input('请输入一个整数:'))
    if num % 4 == 0 and num % 6 == 0:
        print("能够被4和6同时整除")

    1.2条件1 or 条件2:条件1和条件2有一个成立就返回True。

    # 写出判断一个数是否能够被3或者7整除,但是不能同时被3和7整除的条件语句,并打印结果
    num = int(input("请输入一个数字:"))
    if (num % 3 == 0 or num % 7 == 0) and (num % 21 != 0):
        print("能够被3或者7整除,但是不能同时被3和7整除")

    1.3not 条件:条件为真返回False,条件为假返回True。

    is_man = False
    if not is_man:
        print("不是个男人")

      说明,当多个逻辑运算符在一起时,可以进行换行,建议的格式如下:

    # 导入包的时候,应该将导入的语句放在文件的顶部,这样方便下方代码可以在任何时候使用工具包中的代码
    import random
    
    player = int(input("请输入您要出的拳:1(剪刀)/2(石头)/3(布)"))
    computer = random.randint(1, 3)
    print("您出的拳为:%s,电脑出的拳为:%s" % (player, computer))
    if ((player == 1 and computer == 3)
            or (player == 2 and computer == 1)
            or (player == 3 and computer == 2)):
        print("电脑输了")
    elif player == computer:
        print("平局")
    else:
        print("电脑赢了")

      if语句可以进行嵌套,如下:

    ticket = input("是否买票了(N/Y)?")
    if ticket == "Y":
        safe = input("安检是否通过(N/Y)?")
        if safe == "Y":
            print("安检通过了,可以进候车室")
        else:
            print("安检未通过,不能进入候车室")
    else:
        print("未买票,请先买票")

      注:所有的标准对象均可用于布尔测试,同类型的对象可以比较大小,每个对象天生都有True或者False值与其对应。

      None,0,0.0+0.0j,"",[],()等的布尔值均为False。

    1.4if语句的注意点

    • 1.区间判断
    score = float(input("请输入你的成绩:"))
    # 在某些语言里,判断区间不能连写,需要使用逻辑运算符来连接 score >= 0 and score < 60
    # Python里可以使用连续的区间判断
    if 60 > score >=0:
        print("不及格")
    • 2.隐式类型转换
    if 4:  # if后面需要的是一个bool类型的值,如果if后面不是布尔类型,会自动转换成为布尔类型
        print("hello world")
    • 3.三元表达式(对if...else语句的简写)

      例如如果x>y的结果为真,则a=12,否则a=13:

    a=12 if x>y else 13

    2.while循环

      程序的三大流程分别为顺序(从上到下),分支(根据条件判断,决定执行代码的分支),循环(让特定代码重复执行)。

       while语句的一般形式为:

    while 条件:
        循环体

      实例,计算1+2+3+...99的和。

    i = 1
    count = 0
    while i <= 100:
        count += i
        i += 1  # python中没有i++
    print(count)

      注:可以使用Ctrl+C来结束循环。

    while...else语句

      当while条件中为False时执行else代码块:

    i = 1
    while i < 10:
        print("i的值为:", i)
        i += 1
    else:
        print("i的值为10,程序跳出while循环,执行else语句块内容")

      如果while循环体的语句只有一条语句,则该语句可以和while在同一行。

    i = 1
    while i : print("无限循环")

    3.for循环

      for循环可以用来遍历任何序列,如列表和字符串等。

      for循环的一般形式为:

    for 变量名 in sequence:  # in的后面必须是一个可迭代对象,目前接触的可迭代对象:字符串,列表,元祖,字典,集合,range
        循环体
    else:
    没有通过break退出循环,循环结束后,会执行的代码

      实例:

    names=["zhangsan", "lisi", "wangwu", "boxiaoyuan"]
    for name in names:
        print(name)

    应用场景:

      在迭代遍历嵌套的数据类型时,例如一个列表包含了多个字典。

      需求:要判断某一个字典中是否存在指定的值,如果存在,提示并且退出循环,如果不存在,在循环整体结束后,给出一个统一的提示。

    students = [{"name": "小明", "sex": "", "age": "18"},
                {"name": "张红", "sex": "", "age": "22"}]
    
    for student in students:
        if student.get("name") == "小山":
            break
    else:
        print("抱歉,没有找到小山")

    4.range()函数

      range()是内置的可以用来生成数字列表的方法,根据传入的值生成可迭代对象,顾头不顾尾,例如range(0,10,1),其中0为开始值(包括),10为结束值(不包括),1为步长,因此会生成[0,1,2,3,4,5,6,7,8,9]。

    for i in range(0, 10, 1):
        print(i)

      另外,也可以使用len方法结合range,遍历列表:

    names = ["zhangsan", "lisi", "wangwu", "boxiaoyuan"]
    for i in range(len(names)):
        print(names[i])

    5.break和continue

    • break和continue在Python里只能用在循环语句里。
    • break关键字用来结束for循环或者while循环,for...else或者while...else后的else均不执行,continue关键字用来结束for或者while的本次循环,然后接着执行下次循环

    break

    i = 0
    while i < 5:
        i += 1
        if i == 3:
            break
        print(i)  # 输出结果为1和2

    continue

    i = 0
    while i < 5:
        i += 1
        if i == 3:
            continue
        print(i)  # 输出1 2 4 5

      while...else,当while中遇到break也不会执行else中语句块

    i = 0
    while i < 5:
        i += 1
        if i == 3:
            break
        print(i)  # 1 2
    else:
        print("执行了else中的内容")

    6.pass语句

      pass关键字在python里没有意义,只是单纯的用来占位,保证语句的完整性。

    names = ["zhangsan", "lisi", "wangwu", "boxiaoyuan"]
    for name in names:
        if name == "wangwu":
            pass
    print("执行了pass")
    print("name的值:", name)
  • 相关阅读:
    【TFLSnoi李志帅】第⑥篇文章---排序
    【TFLSnoi李志帅】第⑤篇文章--递推算法经典例题
    【TFLSnoi李志帅】第四篇文章---高精度加法
    【TFLSnoi李志帅】第三篇文章
    【TFLSnoi李志帅】第三篇文章---问题记录
    【TFLSnoi李志帅】第一篇文章
    为什么成功引入jquery后,效果无法生效
    到底classpath指向哪里
    05-配置web.xml
    04-配置事务管理
  • 原文地址:https://www.cnblogs.com/zhuzhaoli/p/10251753.html
Copyright © 2011-2022 走看看