day04-分支和循环

day04分支和循环

1.流程控制

流程控制:控制代码的执行顺序

根据代码的执行顺序的不同,可以将代码分成三种结构

1.1顺序结构

代码从上往下按顺序执行

print(100)
print('hello world')
x = 1000
print(x*2)
"""
从上往下依次执行,输出为:
100
hello world
2000
"""

1.2分支结构

根据条件选择执行或不执行某些代码

age = 17
if age >= 18:
    print('进网吧玩游戏')
"""
当输入的age小于18时,print不执行
"""

1.3循环结构

代码只写一遍,重复执行多次

for x in range(10):
    print('hello world')
"""
输出10次hello world
"""

2.if分支结构

2.1 if单分支结构

如果…就…

"""
语法:
if 条件语句:
    代码段
说明:
if   		    -   固定写法
条件语句          -   任何有结果的表达式,一般都是结果为布尔值的表达式
:   			-   固定写法
代码段			  -   结构上,和if保持一个缩进(一个tab)的一条或者多条语句(至少一条)
					逻辑上,就是满足条件才需要执行的代码
"""
# 判断num的值是否为偶数
num = 350
if num % 2 == 0:
    print('偶数')
# 如果year对应的年份是闰年就打印'闰年'
year = 1998
if year % 4 == 0 and (year % 100 == 0 or year % 400 == 0):
    print('闰年')
# 若x是整数就打印'整数'
x = 34.9
if type(x) == type(1):
    print('整数')

2.2 if双分支结构

如果…就…,否则就…

"""
语法:
if 条件语法:
    代码段1(满足条件会执行的代码)
else:
    代码段2(条件不成立会执行的代码)
"""
# 根据year的值打印'闰年'或者'平年'
year = 2000
if year % 4 == 0 and (year % 100 == 0 or year % 400 == 0):
    print('闰年')
else:
    print('平年')

2.3 if多分支结构

如果…就…,如果…就…,如果…就…,如果…就…,…

"""
方法一:(根据不同条件做不同的事情,其中一个条件成立的时候另外的条件也可能成立)
if 条件1:
    代码段1
if 条件2:
    代码段2
if 条件3:
    代码段3
(每个条件都会判断,成立的时候指定对应的代码段)
方法二:(根据不同条件做不同的事情,其中一个条件成立的时候另外的条件绝对不会成立)
if 条件1:
    代码段1
elif 条件2:
    代码段2
elif 条件3:
    代码段3
...
else:
    代码段N
(从前往后判断条件,执行第一个满足条件对应的代码段,一旦某个条件成立,后面的条件不会再判断)
"""
#  根据分数打等级
score = 59
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 60:
    print('C')
else:
    print('D')

3. for循环和while循环

"""
语法:
for 循环变量 in range(start,end):
语句1
语句2
语句3
"""

range:

"""
range(100) - 0~99的取值范围
range(0, 100) - 0~99的取值范围
range(1, 101) - 1~100的取值范围
"""
# 左边取得到,右边取不到
for i in range(1, 10):
    print(i, i ** 2, i ** 3)
# range(1, 10, 2) - 1~9的范围,每次取值在原来的基础上+2
for i in range(1, 10, 2):
    print('*' * i)

案例a.输出*号

"""
*
***
*****
*******
*********
"""
# range(1, 10, 2) - 1~9的范围,每次取值在原来的基础上+2
for i in range(1, 10, 2):
    print('*' * i)

案例b.找出100到999之间的水仙花树

# 水仙花树:153,1的三次方+5的三次方+3的三次方=153类似的数就是水仙花数
for i in range(100, 1000):
    if (i // 100) ** 3 + (i % 100 // 10) ** 3 + (i % 10) ** 3 == i:
        print(i)

案例c.计算若干个数以内的质数

a = int(input())
for i in range(2, a):
    is_prime = True
    for j in range(2, i):
        if i % j == 0:
            is_prime = False
            break
    if is_prime:
        print(i)

案例d.计算1到100的和

total = 0
i = 1
while i <= 100:
    total += i
    i += 1
print(total)
"""
while 循环条件(产生布尔值的表达式)
    语句1
    语句2
    语句3
"""

案例e:猜数字游戏

"""
计算机产生一个1-100随机数让人来猜,人输入自己猜的数字,
计算机会提示人"大一点"、"小一点"、"猜中了",如果没有猜中游戏继续,
如果猜中了游戏结束,如果猜了7次以上,计算机提示"智商拙计"。
"""
import random
i = random.randrange(1, 101)
iq = False
for k in range(1, 8):
    j = int(input('输入你猜的数'))
    if j > i:
        print('小一点')
    elif j < i:
        print('大一点')
    elif j == i:
        print('猜中了')
        iq = True
        break
if not iq:
    print('智商捉鸡')

案例f:99乘法表

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

案例g:计算最小公倍数和最大公约数

a = int(input('输入一个数'))
b = int(input('再输入一个数'))
if a < b:
    a, b = b, a
for i in range(1, b + 1):
    if a * i % b == 0:
        print(f'{a * i}为这两个数的最小公倍数')
        break
t = b
c = a % b
while c:
    t = c
    c = t % c
print(f'{t}为这两个数的最大公因数')

案例h:计算10个数的平均值

n = 10
total = 0
print(f'输入{n}个数')
for i in range(n):
    a = float(input(''))
    total += a
average = total / n
print(f'平均值为{average}')

案例i.计算组合数和排列数

print('输入两个数')
n = int(input())
k = int(input())
total_multiply = 1
total_divide = 1
for i in range(1, n + 1):
    total_multiply *= i
for j in range(1, n - k + 1):
    total_divide *= j
res_1 = total_multiply / total_divide
print(f'组合数为{res_1}')
total_multiply = 1
total_divide = 1
for i in range(n - k + 1, n + 1):
    total_multiply *= i
for j in range(1, k + 1):
    total_divide *= j
res_2 = total_multiply / total_divide
print(f'排列数为{res_2}')

案例j:根据输入的三边边长计算三角形是否能被构成,若能构成,计算其周长和面积

print('输入三角形的三条边长')
a = float(input())
b = float(input())
c = float(input())
l = a + b + c
p = l / 2
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
if b < c:
    b, c = c, b
if a < b:
    a, b = b, a
if a < b + c:
    print('能构成三角形')
    print(f'周长为{l},面积为{s}')
else:
    print('不能构成三角形')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值