python基础学习03——分支/循环结构详解
下方链接对小白的你,是一个不错的选择
程序的三大控制结构为:顺序结构、循环结构、选择结构
分支结构、循环结构练习
-
分支结构和循环结构是构成代码一个非常重要的模块
-
分支结构,用于选择
-
循环结构,用于对事件的重复性操作
-
在编程中常常分支结构和循环结构组合嵌套
分支结构定义
-
分支结构就是选择结构
-
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
-
包括单分支、双分支、嵌套分支
请看下图
分支结构python 代码实现
# 对输入数字进行翻转 123-->321
'''
123//10...3 12//10...2 1//10...1
'''
num=int(input('num= '))
while num > 0:
total = total * 10 + num % 10
num = num // 10
print(total)
循环结构定义
- 循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
- 循环结构的三个要素:循环变量、循环体和循环终止条件
- python 中有for in 循环 / while 循环
请看下图
打印九九乘法表
# 九九乘法表
for i in range(1,10): # 了、控制行
for j in range(1,i+1): #控制列
print(f'{i}*{j}={i*j}',end=' \t')
print()
循环结构与分支结构综合应用
找出1~100的素数/质数
print('1~100的质数:')
d = 0 # 控制每一行打印个数
for i in range(2, 100):
is_prime = True
# rang()函数中的stop参数可以优化,根据因子的对称性只需要判断前面的即可。
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
is_prime = False
break
if is_prime:
d += 1
print(i, end=' ')
if d % 5 == 0: # 每5个独占一行
print()
实现在一个列表中找到两个数的和等于target,并输出对应的位置,l:为列表 target:两个数的和
# 定义一个函数,l:表示放入一个列表
def fun(l, target):
for i in range(len(l)):
for j in range(i + 1, len(l)):
if l[i] + l[j] == target:
print(f'{l[i]}+{l[j]}={targe}', end='\t')
print(f'第{i + 1}个和第{j + 1}个')
l = [5, 7, 9, 3, 11, 0, 1, 12]
target = 12
fun(l, target)
百钱买百鸡问题
# 思想:穷举法,举尽所有的可能,然后设置条件找到问题的解--->暴力搜索法/暴力破解法
# 鸡翁一值5钱,母鸡-值3钱,雏鸡3只1钱
for x in range(0,21):
for y in range(0,34):
for z in range(0,100,3):
if x+y+z==100 and 5*x+3*y+z//3==100 :
print(x,y,z)
# 优化代码,减少循环次数。z=100-x-y
for x in range(0,21):
for y in range(0,34):
z=100-x-y
if z%3==0 and 5*x+3*y+z//3==100:
print(x,y,z)
斐波拉数列
# N:获取前N项
# 1,1,2,3,5,8...
# 从第三项开始,后一项是前两项之和
N = int(input('n='))
a, b = 1, 1
for i in range(1, n + 1):
if i == 1 or i == 2:
print(1, end=' ')
else:
c = a + b
a = b
b = c
print(c, end=' ')
总结
三大结构是构造程序的基础,要多加练习。一定要熟练掌握!、一定要熟练掌握!、一定要熟练掌握!。长期的积累定会引起后期质的突破。