day4-分支和循环

分支和循环

1. 流程控制

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

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

1)顺序结构(默认) - 代码从上往下按顺序执行一条一条的执行(每条语句只执行一次)

print(200)
print('hello world!')
x = 1000
print(x * 2)

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

age = 20
if age >= 18:
    print('进网吧玩游戏')
    
print('---------------------')

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

for x in range(3):
    print('读高三')

2. if 分支结构

2.1 if 单分支结构

if 单分支结构 - 如果xxx就xxx

1)语法:

if 条件语句:
​ 代码段

2)说明:

条件语句 - 任何有结果的表达式,一般是结果为布尔值的条件语句

代码段 - 结构上,和if保持一个缩进(一个Tab)的一条或者多条语句(至少一条)

​ 逻辑上,就是满足条件才需要执行的代码

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

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

练习1:根据num的值打印’3的倍数‘

num = 73293
if num % 3 == 0:
    print('3的倍数')

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

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

练习3:如果x是整数就打印‘整数’

x = 687
if type(x) == int:
    print('整数')

2.2 if 双分支结构

if 双分支结构 - 如果xxx就xxx否则就xxx

语法:

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

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

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

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

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

2.3 if 多分支结构

if 多分支结构 - 如果xxx就xxx,如果xxx就xxx,如果xxx就xxx,…(根据不同的条件做不同的事情)

方法1: - 根据不同条件做不同的事情,其中一个条件成立的时候另外的条件有可能成立

if 条件1:
​ 代码段1
if 条件2:
​ 代码段2
if 条件3:
​ 代码段3

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

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

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

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

if 条件1:
​ 代码段1
elif 条件2:
​ 代码段2
elif 条件3:
​ 代码段3

else:
​ 代码段N

(从前往后判断条件,执行第一个满足条件的代码段,一旦某个条件成立,后面的条件不会再判断)

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

3. 循环结构

3.1 for 循环

语法:

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

range(start, end) - [start, end)的取值范围

range(1, 10, 2) - [1, 9)的取值范围,每次取值在原来的基础上+2

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

案例:每行输出1、3、5、7、9个*

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

练习1:输出1~9的数字以及它们的平方和立方

for i in range(1, 10):
    # print('%d\t%d\t%d' % (i, i ** 2, i ** 3))   # %d - 占位符,\t - 制表键
    print(f'{i}\t{i ** 2}\t{i ** 3}')

练习2:求1到100的和

total = 0
for i in range(1, 101):
    total += i

print(total)		#5050

练习3:找出100~999的全部水仙花数

for i in range(100, 1000):
    if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i:
        print(i)		# 153 370 371 407

练习4:输入一个大于1的正整数,判断它是不是质数(只能被1和自身整除的数,也叫素数)

x = int(input('请输入一个大于1的正整数:'))
# 假设这个数是质数
is_prime = True

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

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

练习5:输出100以内的全部质数

for x in range(2, 100):
    
    is_prime = True

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

    if is_prime:
        print(x, end='  ')

3.2 while 循环

语法:

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

条件如果成立,就执行循环体中的代码;条件不成立,离开循环执行后续代码

案例1:1到100求和

total, i = 0, 1

while i <= 100:
    total += i
    i += 1
    
print(total)

案例2:计算机产生一个1-100随机数让人来猜,人输入自己猜的数字,计算机会提示人“大一点”、“小一点”、“猜中

了”,如果没有猜中游戏继续,如果猜中了游戏结束,如果猜了7次以上,计算机提示“智商着急”

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、付费专栏及课程。

余额充值