Python基础之控制结构

Python基础之控制结构

Python中控制结构分为分支结构与循环结构。

1.分支结构

(1) if 结构

适用于只有一种选择的时候
语法结构

if 条件 :
    代码操作

例:

# 定义一个变量,存储一个数据,判断该数据是否为偶数,如果是则输出该变量
num = int(input("输入整数:"))
if num & 1 == 0:
    print("num =", num)

# 定义一个变量,存储一个数据,判断该数据是否在区间[3,6]中,如果在则输出该变量
num = int(input("输入整数:"))
if 3 <= num <= 6:
    print("num =", num)
"""
注意:在Python中,通过代码之间的缩进来表示程序的层级关系,因此在代码书写时,必须严格按照缩进执行代码
pass Python内置关键字,代表空语句,一般用来充当程序的结构
"""

(2) if-else结构

该分支结构用于两种选择情况
语法结构

if 条件:
    执行语句
else:
    执行语句
# 注意:else是对if条件的否定,即当if条件不成立时执行

例:

# 用户通过控制台输入数字A、B,请输出A占B的百分比
A = int(input("输入整数A:"))
B = int(input("输入整数B:"))
if A <= B:
    print("A占B的%.2f%%" % (A/B*100))
else:
    # print("输入错误:要求A不大于B!")
    raise ValueError("输入错误:要求A不大于B!")
    # raise 抛出异常  

# 定义三个变量,存储三个整数,求三个整数的中间值
A = int(input("输入整数A:"))
B = int(input("输入整数B:"))
C = int(input("输入整数C:"))
if (A >= B >= C) or (C >= B >= A):
    print("中间值B=%d" % B)
else:
    if (A >= C >= B) or (B >= C >= A):
        print("中间值C=%d" % C)
    else:
        print("中间值A=%d" % A)
        
# 在开发中,很多时候需要使用if-else 的嵌套操作

(3)if-elif-else结构

用于计算机需要从多于两个的条件结果中做出选择
语法结构

if 条件1:
    执行语句1
elif 条件2:
    执行语句2
elif ...:
    执行语句...
else
    执行语句n

例:

# 输入月份,判断该月份属于哪个季节
month = int(input("输入月份:"))
if 3 <= month <= 5:
    print("%d月是春天" % month)
elif 6 <= month <= 8:
    print("%d月是夏天" % month)
elif 9 <= month <= 11:
    print("%d月是秋天" % month)
elif month == 12 or 1 <= month <= 2:
    print("%d月是冬天" % month)
else:
    print("输入不合法")
注意:Python注重精简,所以不支持Switch操作!!!同时也不支持do-while循环!!!

2.循环结构

循环:程序对某一段相同代码执行连续不停的重复执行(两次执行)多次操作
Python中的循环分为while循环和for循环,其中for循环成为了迭代操作
迭代:从一个可迭代容器中重复不停的取值运算

###(1) range()方法

range():Python内置操作,用来生成指定范围的一串连续数字
注意:range()最终返回的是一个可以迭代的容器
range(num):此过程生成一个区间为[0,num)的一串连续数字
range(num1,num2):此过程生成一个区间为[num1,num)的一串连续数字
range(num1,num2,step):生成从[num1,num2)的间隔为step的一串连续数字

例:

nums = range(10)
print(list(nums))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

nums = range(2, 10)
print(list(nums))
# [2, 3, 4, 5, 6, 7, 8, 9]

nums = range(2, 10, 3)
print(list(nums))
# [2, 5, 8]

###(2)for循环结构

仅适用于有限循环
语法结构

for variable in Iterator:
    循环体
variable:变量,用来存储每一次迭代所取出的数据
Iterator:迭代对象,用来存储数据的迭代容器
循环体:每一次迭代之后需要做的具体操作

例:

# 求[1-100]所有数的阶乘
for item in range(1, 101):
    mul = 1
    for i in range(1, (item+1)):
        mul *= i
    print("!%d=%d" % (item, mul))

# 求[1-100]第一个7的倍数
for item in range(1,101):
    if item % 7 == 0:
        print(item)
        break
else:
    print("循环正常结束")

# 求两个数的最大公约数
num1 = int(input("num1="))
num2 = int(input("num2="))
if num1 > num2:
    for item in range(num2, 0, -1):
        if num1 % item == 0 and num2 % item == 0:
            print("最大公约数为", item)
            break
else:
    for item in range(num1, 0, -1):
        if num1 % item == 0 and num2 % item == 0:
            print("最大公约数为", item)
            break
"""
break:强制结束break所在的循环,即使该层循环后面还有需要执行的循环,该层循环也不再执行
else:for循环,while循环可以和else绑定,else中的代码会在循环正常结束之后执行。如果循环在执行过程中被break意外中断,则else中的代码不再执行
"""

(3)while循环结构

适用于有限循环及无限循环

语法格式

while 循环条件:
    循环体

while循环执行原理:首先程序会判断循环条件是否成立,如果成立则执行循环体,当循环体执行完毕,程序会自动跳转到条件判断,如果条件判断成立,则继续执行下一次循环,否则while循环结束
continue:结束本次循环,当程序执行过程中遇到continue关键字,则本次循环结束,程序直接跳转到条件判断
break:结束本层循环,当程序执行过程中遇到break关键字,此时break所在的循环会被强制终止

例:

# 死循环
index = 1
while index <= 10:
    if index == 5:
        # index += 1
        continue
    print(index)
    index += 1

# 有一个正整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,问该数(需手动分析)
for i in range(2, 85, 2):
    if 168 % i == 0:
        j = 168 // i
        if i > j and j & 1 == 0:
            n = (i - j) // 2
            x = n ** 2 - 100
            if x > 0:
                print(x)
i = 2
while i <= 84:
    if 168 % i == 0:
        j = 168 // i
        if i > j and j & 1 == 0:
            n = (i - j) // 2
            x = n ** 2 - 100
            if x > 0:
                print(x)
    i += 2

(4)循环嵌套

循环嵌套:在for或while循环的循环体中存在另一个for循环或while循环,构成嵌套关系的现象。开发中常用的是双重for循环。

例:

# 空心菱形

row = int(input("输入数字:"))
for x in range(-row, row +1):
    string = ""
    for y in range(-row, row +1):
        if abs(x)+abs(y) == row:
            string += "*"
        else:
            string += " "
    print(string)
#    *   
#   * *  
#  *   * 
# *     *
#  *   * 
#   * *  
#    *   

# 不完美,如果有更好的方法请告诉我
    原文作者:Irrer
    原文地址: https://blog.csdn.net/w18211679321/article/details/81192869
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞