• 【03】Python:分支和循环


    写在前面的话

    在写代码的时候,我们的代码不可能总是一行一行语句的堆叠,有些时候我们需要对一个事物进行判断,或者很大一组数据需要循环挨个处理。这些不可能让我们一步一步的去写。所以有了接下来的分支结构和循环结构。

    分支结构

    语法格式:

    if 条件1:
        执行1
    elif 条件2:
        执行2
    else:
        执行3

    示例:

    x = 3
    y = 2
    
    if x == 1:
        print("这是第一种情况")
    elif x == 2:
        print("这是第二种情况")
    else:
        if y == 1:
            print("这是第三种情况")
        else:
            print("这是第四种情况")

    当然,elif else 语句都不是必须,在面对复杂的需求的时候,我们也能进行嵌套。

    实例:

    1. 判断成绩等级,90 以上 A,80 - 89 为 B,70 - 79 为 C,60 - 69 为 D,60 以下为 E。

    # 输入成绩
    score = float(input("请输入成绩:"))
    
    # 判断成绩
    if score >= 90:
        grade = "A"
    elif score >= 80:
        grade = "B"
    elif score >= 70:
        grade = "C"
    elif score >= 60:
        grade = "D"
    else:
        grade = "E"
    
    print("成绩为:%s" % grade)

    结果:

    三元运算符

    三元运算符其实际就是将简单的 if 写成一个语句,如:

    x = 3
    
    if x == 1:
        y = 1
    else:
        y = 0

    我们可以使用三元运算符表示:

    x = 3
    y = 1 if x == 1 else 0

    当然我们还可以写更复杂的逻辑,但是不推荐,因为我们写代码有个前提,那就是便于阅读,越简单易读越好。

    循环结构

    在循环结构中,主要有两种,一种是 while,一种是 for in,两种循环如果要说区别,可能更多的是使用场景的区别,

    for in,一般对一个类似数组这样的集合进行一个一个迭代循环。

    while,一般用于某种特殊的循环,带有判断的意味,我们可以理解为 当 xxx 的时候怎么样

    语法格式:

    # for 循环
    for i in 可迭代对象:
        执行
        
    # while 循环
    while 条件:
        执行

    实例:

    1. 输出所有水仙花数:三位数,个位的三次方 + 十位的三次方 + 百位的三次方 = 数字本身

    注意:我们这里会用到生成连续数字的内置函数 range。

    range(101):生成 0 - 100 的数组。

    range(100, 1000) :则会生成 100 - 999 的数组。

    range(1, 101, 2):获取 0 - 100 之间的奇数,2 代表跨度。

    for num in range(100, 1000):
        if ((num // 100) ** 3 + ((num % 100) // 10) ** 3 + (num % 10) ** 3) == num:
            print(num)

    结果:

    2. 求 0 - 100 的偶数和:

    sum = 0
    
    for num in range(0, 101, 2):
        sum += num
    print("0 - 100 的偶数和为:%d" % sum)

    结果:

    3. 猜数字游戏:用户有 3 次机会,猜 1 - 10 的随机数。猜错会有范围提示。

    注意:这里会用到一个内置函数 random,生成随机数。

    import random
    
    # 用户次数
    times = 3
    # 生成随机数
    random_num = random.randint(1, 10)
    
    # 判断
    while times:
        user_num = int(input("请输入你的猜想:"))
        if user_num > random_num:
            print("你猜大了")
        elif user_num < random_num:
            print("你猜小了")
        else:
            print("你猜对了")
            break
        times -= 1
        print("你还有 %s 次机会!" % times)

    结果:

    4. 打印 99 乘法表:

    for x in range(1, 10):
        for y in range(x, 10):
            print("%sx%s=%s" % (x, y, x*y), end="	")
        print("")

    结果:

    这里有个知识点,print 结束默认的符号是换行,我们可以使用 end= 指定结尾的符号。

    break 和 continue

    这两者都用于循环中,但是两者有着明显的差别:

    break,直接结束当前层级的循环,不管你执行到那里。

    continue,结束本轮循环,进入下一轮。

    看个示例:

    for i in (1, 2, 3, 4, 5):
        if i == 2:
            continue
        if i == 4:
            break
        print(i)

    结果如图:

    可以明显看到,当 i == 2 的时候,这一轮循环被跳过了,所以没有打印 i 的值,当 i == 4 的时候,整个循环都被结束了,所以后面的都不再打印。

    enumerate

    枚举,对一个可迭代对象将其组成索引加数据的序列。

    示例:

    L = ['a', 'b', 'c']
    
    for i in enumerate(L, 1):
        print(i)

    结果:

    小结 

    本节其实主要是逻辑处理语句,包括判断,循环等。其中包括了两个内置函数:range 和 random。

    如果真的只讲几种语法,很简单,结合实例查漏补缺。 

  • 相关阅读:
    12864
    经常使用的正則表達式归纳—JavaScript正則表達式
    官方原版Windows XP SP3(VOL)中文简体版ISO下载
    java final keyword
    ssh 实体关系分析确立(ER图-实体关系图)
    android uiautomator自己主动化測试
    NYOJ 891 找点
    第十一届GPCT杯大学生程序设计大赛完美闭幕
    前端学习——JQuery Ajax使用经验
    VC中获取窗体句柄的各种方法
  • 原文地址:https://www.cnblogs.com/Dy1an/p/10856178.html
Copyright © 2020-2023  润新知