我想当第一
本节内容:
分支结构和循环结构。课后练习题
一.分支结构
1.介绍
_#就是 if elif else 示例如下<br />_a = 7<br />**if **a < 5:<br /> print(**'good'**)<br />**elif **a >5 **and **a <10 :<br /> print(**'very good'**)<br />**else**:<br /> print(**'nb'**)
2.十二生肖练习题
题目:输入年份判断生肖。申猴、酉鸡、戌狗、亥猪、子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊
第一种解法:
yyear = int(input(‘输入你要判断的年份:’))
if year % 12 == 0:
    print(‘申猴’)
elif year % 12 == 1:
    print(‘酉鸡’)
elif year % 12 == 2:
    print(‘戌狗’)
elif year % 12 == 3:
    print(‘亥猪’)
elif year % 12 == 4:
    print(‘子鼠’)
elif year % 12 == 5:
    print(‘丑牛’)
elif year % 12 == 6:
    print(‘寅虎’)
elif year % 12 == 7:
    print(‘卯兔’)
elif year % 12 == 8:
    print(‘辰龙’)
elif year % 12 == 9:
    print(‘巳蛇’)
elif year % 12 == 10:
    print(‘午马’)
elif year % 12 == 11:
    print(‘未羊’)
优化算法:采用列表的方式
year = int(input(‘请输入年份’))
varlist = [‘申猴’,‘酉鸡’,‘戌狗’,‘亥猪’,‘子鼠’,‘丑牛’,‘寅虎’,‘卯兔’,‘辰龙’,‘巳蛇’,‘午马’,‘未羊’]
print(varlist[year % 12])
二.循环结构
1.while循环结构
_#判断当前条件是否成立,示例如下:<br />_a = 0<br />**while **a < 10:<br /> a+=1 _#循环条件<br /> _print(a)
2.for循环和range()函数
_#for循环,通常用来遍历一个容器类型的数据,示例如下:
varlist = [1,2,3,4,5]
for i in varlist:   #for循环遍历列表
    _print(i)
vars = ‘abcdef’
for i in vars:      _#for循环遍历字符串
    _print(i)
#range()函数用于生成连续的整数,是一个特殊的容器类型,拥有三个参数range(i,j,k)  在遍历中采取左闭右开的方式
    #参数一i:代表起始值
    #参数二j:代变终值
    #参数三k:代表步长  默认不写,为1
    
#和for循环组合,示例如下
for i in range(1,11):
    print(i)
3.循环中的关键字
break:跳出本层循环,不在执行当前最近的循环体
continue:跳出本次循环,不再执行本次循环下面的语句,开始下一次循环的执行
pass:可用于再循环体中占位使用
quit()和exit()用于结束python解释器
4.练习:打印十行十列❆
i = 0
while i < 100:
    print(‘❆’,end=‘’)
    i+=1
    if i % 10 == 0:
        print(‘’)
5.练习:九九乘法表
正向打印
for i in range(1,10):       #共有九行,外层循环控制行数
    for j in range(1,i+1):  #内层循环控制列数
        _print(f’{i}x{j}={ij}’,end=*’,’)
    print()                 #每完成一行,就换行_
反向打印:
for i in range(9,0,-1):       #外层循环控制行数,左闭右开,从九开始到1,步长为-1
    for j in range(1,i+1):
        print(f’{i}x{j}={i  j}’, end=*’,’)
    print()
6.练习:斐波那契数列
第一项如果为0,那么第二项是1,第三项开始,每一项都是前两项之和……….示例如下
0,1,1,2,3,5,8………………
num = int(input(‘你需要计算几项:’)) #获取用户输入的数据
n1=0 #第一项默认为0
_n2=1 #第二项默认为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
7.练习:百元买百鸡
公鸡:3元
母鸡:1元
小鸡:0.5元
问:一百元买一百只鸡,一共有多少种方案并列举出来.
num = 0 #方案总数,
for gj in range(0,34):
    for mj in range(0,101):
        # for xj in range(0,201):     #方法一
        # xj =  100 - gj - mj         #方法二:少了一层for循环,提高程序效率
        if 3gj + mj + 0.5xj == 100 and gj + mj + xj == 100:
            num+=1
            print(f’共买了公鸡{gj}只,母鸡{mj}只,小鸡{xj}只’)
print(f’共有{num}种方案:’)
