python语句的分类和流程控制(循环等)以及例题实战

75 篇文章 2 订阅
66 篇文章 5 订阅

分类:1.顺序结构 2.分支结构/选择结构 3.循环结构

1.顺序结构
 顺序结构是系统默认程序结构,自上而下执行
    结构代码
2.分支结构/选择结构
        a.单项分支
    
           if 条件表达式:
                一条python代码
                一条python代码
                一条python代码
                ...
    
        b.双项分支
            if 条件表达式:
                一条python代码
                一条python代码
                一条python代码
                ...
            else:
                一条python代码
                一条python代码
                一条python代码
                ...
    
        c.多项分支
            if 条件表达式:
                一条python代码
                一条python代码
                一条python代码
                ...
            elif 条件表达式:
                一条python代码
                一条python代码
                一条python代码
                ...
            elif 条件表达式:
                一条python代码
                一条python代码
                一条python代码
                ...
            ...
            else:
                一条python代码
                一条python代码
                一条python代码
                ...
    
        c.巢装分支
            例子:
            if 条件表达式:
                代码语句
                if 条件表达式:
                    代码语句
                else:
                    代码语句
            else:
                代码语句

3.循环结构
a.while型循环
        基本结构:
        while 条件表达式:
            代码内容
            代码内容
            代码内容
            ...
    
        带有变化条件的循环
        1.声明变量var
        2.while 进行变量var的判断:
            代码内容
            代码内容
            代码内容
            ...
            3.变量var的改变操作


    b.for..in循环(主要用于遍历容器类数据)
        for 自定义变量 in 容器数据:
            代码内容,可以使用自定义变量
            代码内容,可以使用自定义变量
            代码内容,可以使用自定义变量
            
### else语句的应用

    循环中可以使用else语句
        while 条件表达式:
            循环语句
            循环语句
            循环语句
            ...
        else:
            代码语句
            代码语句
            代码语句
            ...
其他的流程控制语句
1.break语句
    2.continue语句
    3.pass语句

### 特殊语句:
1.exit()
2.quit()
用于结束程序的执行,exit()和quit()之后的代码不会执行。在单纯的循环结构中的作用与break很像,但绝不能混为一谈!!!
练习题一(让用户输入一个四位数的年份,来计算当前这个年份所对应的生肖年)
#十二生肖
#让用户输入一个四位数的年份,来计算当前这个年份所对应的生肖年
# 获取用户输入的年份
year = int(input('请输入四位数的年份:'))
# print(year%12)
if year % 12 == 0:
    print(f'{year}年是 ==> 申猴')
elif year % 12 == 1:
    print(f'{year}年是 ==> 酉鸡')
elif year % 12 == 2:
    print(f'{year}年是 ==> 戌狗')
elif year % 12 == 3:
    print(f'{year}年是 ==> 亥猪')
elif year % 12 == 4:
    print(f'{year}年是 ==> 子鼠')
elif year % 12 == 5:
    print(f'{year}年是 ==> 丑牛')
elif year % 12 == 6:
    print(f'{year}年是 ==> 寅虎')
elif year % 12 == 7:
    print(f'{year}年是 ==> 卯兔')
elif year % 12 == 8:
    print(f'{year}年是 ==> 辰龙')
elif year % 12 == 9:
    print(f'{year}年是 ==> 巳蛇')
elif year % 12 == 10:
    print(f'{year}年是 ==> 午马')
elif year % 12 == 11:
    print(f'{year}年是 ==> 未羊')
else:
    print('计算错误,年份不对')

优化上述流程:

# 获取用户输入的年份
year = int(input('请输入四位数的年份:'))
n= year % 12    #取余
# 定义十二生肖 列表
varlist = ['申猴' ,'酉鸡' ,'戌狗' ,'亥猪' ,'子鼠' ,'丑牛' ,'寅虎' ,'卯兔' ,'辰龙' ,'巳蛇' ,'午马'  '未羊']
print(varlist[n])

练习题二(循环输出十行十列 🌟隔行换色,隔列换色)
'''
循环输出十行十列 🌟
隔行换色,隔列换色
'''
# 隔列换色
num = 1
while num<=100:
# 判断当前数是奇数还是偶数
    if num % 2 == 1:
        print('☆',end = ' ')
    if num % 2==0:
        print('★',end = ' ')
    # 判断是否需要换行
    if num % 10 ==0:
        print()
    num += 1

# 隔行换色
num = 0
while num<100:
    if (num//10) % 2 ==0:
        print('★',end = ' ')
    else:
        print('☆',end = ' ')
    if num % 10 == 9:
        print()
    num += 1

输出结果:
在这里插入图片描述
在这里插入图片描述

练习题三(99乘法表)
# 第一层循环控制 9for x in range(1,10):
    # 第二层循环,内循环
    # 内循环负责当前行的列数 第一行 122列 。。。 99for y in range(1,x+1):
        print(f'{x}x{y}={x*y}',end=" ")
    # 控制换行
    print()

输出结果:在这里插入图片描述

#反向输出九九乘法表
for i in range(9,0,-1):
    for j in range(1,i+1):
        print(f'{i}x{j}={i*j} ',end = '')
    print()

输出结果:
在这里插入图片描述
用while输出九九乘法表和反向九九乘法表:

num = 1
j = 1
while num <10 :
    for j in range(1,num+1):
        print(f'{num}x{j}={num*j} ',end=' ')
    j +=1
    num +=1
    print()

输出结果:
在这里插入图片描述

#反向九九乘法表
num = 9
j = 0
while num >0 :
    for j in range(num,0,-1):
        print(f'{num}x{j}={num*j} ',end=' ')
    j +=1
    num -=1
    print()

输出结果:
在这里插入图片描述

练习题四(斐波那契数列)
'''
011235813。。。
第0项如果是 0,那么第一项是 1,第二项也为 1,之后的第三项开始,每一项都是前面两个数的和
'''

# 获取用户输入的数据
num = int(input('你需要计算几项?'))

n1 = 0
n2 = 1
count = 2
# 从之后的数字开始计算
if num <= 0:
    print('请输入一个正整数。')
elif num == 1:
    print(f'斐波那契数列:{n1}')
else:
    print(f'斐波那契数列:{n1},{n2}',end=",")
    while count < num:
        # 计算当前数
        n3 = n1+n2
        print(n3,end=",")
        # 更新第一位和第二位数
        n1,n2 = n2,n3
        count += 1

输出结果:
在这里插入图片描述

练习题五(百钱买百鸡)
# 一共有100块钱,需要买100只鸡
# 公鸡 == 3元 ==> 33只
# 母鸡 == 1元 ==> 100只
# 小鸡 == 0.5元 ==> 200只
# 问:100块钱买100只鸡,一共有多少种方案
num = 0
count = 0
for cock in range(0,34):
    for hen in range(0,101):
        for chick in range(0,201):
            count += 1
            if (cock + hen + chick )==100 and (cock*3 + hen + chick*0.5)==100:
                print(f'公鸡{cock}只,母鸡{hen}只,小鸡{chick}只,{cock*3 + hen + chick*0.5}')
                num += 1
print(num)
print(count)

输出结果:
在这里插入图片描述
迭代次数达到69万,可以选择优化一下算法,如下:

num = 0
count = 0
for cock in range(0,34):
    for hen in range(0,101):
        chick = 100 - cock - hen
        count += 1
        if (cock + hen + chick )==100 and (cock*3 + hen + chick*0.5)==100:
            print(f'公鸡{cock}只,母鸡{hen}只,小鸡{chick}只,{cock*3 + hen + chick*0.5}')
            num += 1
print(num)
print(count)

输出结果:

在这里插入图片描述

可以看到运行次数仅为3434,大大减少了迭代次数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值