day4 - 流程控制

day4 - 流程控制

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

1)顺序结构(默认)

代码从上到下依次执行

2)分支结构(if) - 根据条件选择执行或者不执行某些代码

(1) if 单分支

语法: if 条件语句:

​ 执行语句

流程:若表达式成立(True),就执行结构中的执行语句

案例1:根据num的值打印’偶数’(如果num的值是偶数就打印’偶数’)

num = 350
if num % 2 == 0:
    print('偶数')

练习:如果year对应的年份是闰年就打印’闰年

year = 2000
if (year % 4 == 0 and year % 100 != 0) or (year % 400) == 0:
    print('闰年')

(2) if 双分支

语法:
if 条件语法:
代码段1(满足条件会执行的代码)
else:
代码段2(条件不成立会执行的代码)

案例1:根据num的值打印’偶数’或者’奇数’

num = 25
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')

练习:根据year的值打印’闰年’或者’平年’

year = 2000
if (year % 4 == 0 and year % 100 != 0) or (year % 400) == 0:
    print('闰年')
else:
    print('平年')

(3) if 多分支结构
方法1: - 根据不同条件做不同的事情,其中一个条件成立的时候另外的条件也可能成立
if 条件1:
代码段1
if 条件2:
代码段2
if 条件3:
代码段3

(每个条件都会判断,成立的时候指定对应的代码段)

方法2: - 根据不同条件做不同的事情,其中一个条件成立的时候另外的条件绝对不会成立
if 条件1:
代码段1
elif 条件2:
代码段2
elif 条件3:
代码段3

else:
代码段N

案例:打印指定的百分制分数对应的等级:>=90 - A; [80, 90) - B; [60, 80) - C; <60 - D


score = 98
if score >= 90:
    print('A')
if 80 <= score < 90:
    print('B')
if 60 <= score < 80:
    print('C')
if score < 60:
    print('D')

3)循环结构(for、while) - 让代码重复执行(代码只写一遍,重复执行多次)

(1)for 循环

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

案例 1:

for i in range(1, 101):
    print(i, 'hello, world!')
    print(i, 'goodbye, world!')

案例 2:输出如下所示的图案,range(1, 10, 2) - 1~9的范围,每次取值在原来的基础上+2

*
***
*****
*******
*********
for i in range(1, 10, 2):
    print('*' * i)

案例 3:输出的数字是它们的平方和立方

for i in range(1, 4):
    # 格式化输出
    #方法一
    print('%d\t%d\t%d' % (i, i ** 2, i ** 3))  
    #方法二
    print(f'{i}\t{i ** 2}\t{i ** 3}')

案例 4:找出 100 到 999 之间的水仙花数
a b c = a 3 + b 3 + c 3 abc = a^3+b^3+c^3 abc=a3+b3+c3

for i in range(100, 1000):
    a = i // 100
    b = i % 100 // 10
    c = i % 10
    if i == a ** 3 + b ** 3 + c ** 3:
        print(i)

案例 5:输入一个大于 1 的正整数,判断它的是不是质数

假设这个数是N,如果是质数,那么在2到N-1之间应该没有它的因子。

num = int(input('num = '))
# 假设输入的num是一个质数将布尔值赋值为True
is_prime = True

for i in range(2, num):
    # 如果在2~N-1之间找到了num的因子
    if num % i == 0:
        # 不是质数就将对应的布尔值赋值为False
        is_prime = False
        break

print(is_prime)

if is_prime:
    print(f'{num}是质数.')
else:
    print(f'{num}不是质数.')

(2)while 循环

语法

while 循环条件(产生布尔值的表达式):
语句1
语句2
语句3

条件如果成立,就执行循环体中的代码;条件不成立,离开循环执行后续代码
注意:在写while循环的时候,如果循环条件一直成立,循环就成了死循环!!!

循环次数在一开始就能确定下来,我们可以直接构造一个范围使用for循环;
如果循环次数不能确定,需要通过条件进行控制,我们就使用while循环。

案例 1:求 1-100 的和

total, i = 0, 1

while i <= 100:
    total += i
    i += 1

print(total)

练习:猜数字小游戏

import random

answer = random.randrange(1, 101)
counter = 0
while True:
    counter += 1
    thy_answer = int(input('请输入: '))

    if thy_answer > answer:
        print('小一点')
    elif thy_answer < answer:
        print('大一点')
    else:
        print('恭喜你,猜中了')
        break

if counter > 7:
    print('温馨提示:智商余额不足!!!')
print('游戏结束')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值