day4-分支和循环

day4-分支和循环

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

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

1、顺序结构(默认)

代码从上往下按顺序一条一条的执行(每个结构只执行一次)

print(1)
print('hello world!')

2、分支结构(if)

(1)if单分支

  • 语法
'''
if 条件语句:
	代码段
'''
  • 案例:根据num的值打印’偶数‘(如果num的值是偶数就打印’偶数‘)
num = 22
if num % 2 == 0:
    print('偶数')

(2)if双分支

  • 语法:
'''
if 条件语句:
	代码段1:
else:
	代码段2:
'''
  • 案例:根据num的值打印‘偶数’还是‘奇数’
num = 23
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')

(3)if多分支结构

  • 语法
'''
方法一:根据不同的条件做不同的事情,其中一个条件成立的时候另外的条件也有可能成立
if 条件1:
    代码段1
if 条件2:
    代码段2
if 条件3:
    代码段3
...
(注意:每个条件都会判断,成立的时候指定对应的代码段)

方法二:根据不同的条件做不同的条件,其中一个条件成立的时候另外的条件绝对不可能成立
if 条件1:
    代码段1
elif 条件2:
    代码段2
elif 条件3:
    代码段3
...
else:
    代码段n
(注意:从前往后判断条件,执行第一个满足条件对应的代码段,一旦每个条件成立,后面的条件不会再判断)

'''
  • 案例:印指定的百分制分数对应的等级:>=90 A;[80,90) B;[60,80) C;<60 D
score = 70
if score >= 90:
    print('A')
elif score >=80:
    print('B')
elif score >=60:
    print('C')
else:
    print('D')

3、循环结构(for,while)

(1)for循环

  • 语法
'''
for 循环变量 in range(start,end)  (注意:end的值取不到)
        语句1
        语句2
        语句3
'''
  • 案例1
# range(10)     - 0~9的取值范围
# range(0,10)   - 0~9的取值范围
# range(0,10,2) - 0~9的范围,但循环变量每次在原有的取值上+2
for i in range(1,10,2):
    print(i,end=' ')      # 1,3,5,7,9
  • 案例2:求1到100的和,1到100奇数的和
total = 0
for i in range(1,101):
    total += i 
print(total)  # 5050

#奇数的和
for i in range(1, 101, 2):
    total += i 
print(total)
  • 案例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}')

'''
1 1 1
2 4 8
3 9 27
'''
  • 案例4:找出100到999之间的水仙花数(水仙花数:abc=a3+b3+c^3)
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):
    if num % i == 0:
        is_prime = False  # 不是质数就将对应的布尔值赋值为False
        break  # 满足条件后可以提前终止循环

# True就是质数
if is_prime:
    print(f'{num}是质数')
else:
    print(f'{num}不是质数')
  • 案例6:输出100以内的质数
for num in range(1, 101):
    is_prime = True
    for i in range(2, num):
        if num % i == 0:
            is_prime = False
            break
     if is_prime:
        print(num)

(2)while循环

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

(条件如果成立,就执行循环体中的代码;条件如果不成立,离开循环后执行后续代码)
注意:在写while循环的时候,如果循环一直成立,则会进入死循环
终端:Ctrl+C - 终止进程的执行
'''
  • 案例:求1-100的和
total = 0
i = 1

while i <= 100:  # 用条件来控制循环是否继续还是结束掉循环
    total += i
    i += 1
print(total)

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

  • 练习:猜数字小游戏

游戏规则:计算机产生一个1-100的随机数让人来猜,人输入自己的数字,计算机会提示’大一点‘,’小一点‘,‘猜中了’,如果没有猜中游戏继续。如果猜中了游戏结束,如果猜了7次以上,计算机提示’智商拙计‘。

# 产生一个随机数
import random

answer = random.randrange(1, 101)
counter = 0  # 计数器,计数猜的次数
# 因为不知道需要猜多少次,所以用while循环
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、付费专栏及课程。

余额充值