我想当第一

本节内容:

分支结构和循环结构。课后练习题

一.分支结构

1.介绍

  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循环结构

  1. _#判断当前条件是否成立,示例如下:<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}种方案:’)