python学习(分支和循环)

本文详细介绍了Python中的流程控制,包括顺序、分支(if单分支、双分支和多分支)、循环(for和while)以及循环控制的关键字如continue和break。通过实例演示了如何运用这些结构解决实际问题。
摘要由CSDN通过智能技术生成

一、流程控制

      1、定义:通过代码控制程序的执行过程

      2、控制过程:

                顺序结构:代码重上往下按顺序执行,而且每条语句只执行一次(默认)

                分支结构:执行代码时根据条件选择执行代码(if)

                循环结构:让代码重复执行(for、while)

二、分支结构

1、if单分支结构:

        如果xx就xx(满足条件就执行某个操作,条件不满足的时候这个操作就不执行)

        (1)语法:

                        if 条件语句:

                                代码块

        (2)说明:

                        “if”:关键字,固定写法

                        “ 条件语句”:一般写判断语句,本质上可以写任何有结果的表达式

                        “ :”:固定写法

                        “代码块”:结构上,是和if保持一个缩进的一条或多条语句(至少一条)

                                         结构上,代码块就是满足条件才执行的代码

# 案例
num = 289
if num % 2 == 0:
	print('偶数')
# 练习:1:如果一个三位数的个位数和百位数相等就打印"回文数"
num = 820
if num // 100 == num % 10:
    print('回文数')

# 练习2:根据年份在控制台打印"闰年"
year = 2009
if year % 400 == 0 or year % 100 != 0:
    print('year是闰年')
2、if双分支结构

        如果xx就xx否则就xx(满足条件执行某个操作,条件不满足就执行另外的操作)

        语法:

                if 条件语句:

                        代码块1(满足条件时需要执行的代码)

                else:

                        代码块2(不满足条件时需要执行的代码)

# 案例1:根据num的值打印“偶数”或者“奇数”
num = 666
# 方法1
if num % 2 == 0:
    print('num是偶数')
else:
    print('num是奇数')
# 方法2
if num % 2:
    print('num是偶数')
else:
    print('num是奇数')
# 案例2:根据变量x中的数据的类型打印“数字数据”或者“非数字数据”
x = 'xiao'
# 方法1
if type(x) == int or type(x) == float:
    print('数字数据')
else:
    print('非数字数据')
# 方法2
if tpye(x) in (int,float):
    print('数字数据')
else:
    print('非数字数据')
3、 if多分枝结构

        如果xx就xx,如果xx就xx,如果xx就xx,。。。否则就xx(根据不同条件做不同的事情)

        (1)多个if单分支结构(多个条件之间,一个条件成立其他的条件也成立)

                if 条件1:

                        代码块1

                if条件2:

                        代码块2

                ......

                if条件N:

                        代码块N

# 案例:根据分数值打印:优秀(>=90)、良好(>=80,<90)、中等(>=60,<80)、不及格(<60))
score = 99
if score >= 90:
    print('优秀')
if score >= 80 and score <90:
    print('良好')
if score >= 60 and score <80:
    print('中等')
if score < 60:
    print('不及格')

        (2)if-else结构(多个条件之间存在,有一个条件成立,其他条件绝对不会成立)

                       if条件1:

                                代码块1

                        else条件2:

                                代码块2

                        else条件3:

                                代码块3

                        ......

                        else:

                                代码块N

# 案例:根据分数值打印:优秀(>=90)、良好(>=80,<90)、中等(>=60,<80)、不及格(<60))
score = 99
if score >= 90:
    print('优秀')
elif score >= 80:
    print('良好')
elif score >= 60:
    print('中等')
elif score < 60:
    print('不及格')
else:
    print('出错了!')
4、分支嵌套:
# 案例:根据num的值打印"偶数"、"奇数"和"4倍数"
num = 34
if num % 2 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4倍数')
else:
    print('奇数')

三、循环结构(for、while)

        功能:让代码重复执行

1、for循环

        (1)语法:

                        for 变量 in 序列:

                               循环体

        (2)说明:

                        “for”:关键字;固定写法

                        “变量”:变量名(已经定义过的变量或者没有定义的变量都可以)

                        “in”:关键字;固定写法

                        “序列”:容器型数据类型,例如:字符串、列表、字典、元组、集合、迭代器、生                                       成器、range

                        “:”:固定写法,必须英文

                        “循环体”:结构上,就是和for保持一个缩进的一条或多条语句(至少一条)

                                        逻辑上,循环体就是需要重复执行的代码

        (3)循环原理:

                     让变量去序列中按顺序取值,一个一个的取,取完为止,每取一次就执行一次循环体

                     如果要控制循环的次数,只需要控制序列中元素的个数

# 控制程序打印5次'hello world!'
for x in 'abcde':
    print('hello world!')
2、range函数(创建容器)

        (1)range(N):创建(0,N]的等差数列,差是1

                        例如:range(5) - 0、1、2、3、4

        (2)range(M,N):创建[M,N]的等差数列,差是1

                        例如:range(5,11) - 5、6、7、8、9、10

        (3)range(M,N,step):创建[M,N]的等差数列,差是step

                        例如:range(2,11,2) - 2、4、6、8、10

# 使用range创建以下等差数列
# 11 12 13 14 15
for x in range(11,16):
    print(x)
# 11 13 15 17 19
for x in range(11,20,2):
    print(x)
# -2 -1 0 1 2
for x in range(-2,3):
    print(x)
# 0 5 10 15 20
for x in range(0,21,5):
    print(x)
# 10 8 6 4 2
for x in range(10,1,-2):
    print(x)
3、循环的应用

        (1)累计求和

                        第一步:定义一个变量来保存最后的结果,变量的默认值是0

                        第二步:使用循环获取需要求和的每一个数据

# 案例1:求1 + 2 + 3 + ... + 100
sum1 = 0
for x in range(1,101):
    sum1 += x
print(sum1)

案例2:# 案例2:求100~200中所有能被3整除但是不能被5整除的和
sum2 = 0
for y in range(100,201):
    if y % 3 == 0 and y % 5 != 0:
        sum2 += y
print(sum2)

# 案例3:求分数列表中所有学生的总分
scores = [90, 45, 78, 92, 89, 74, 50, 91, 99, 80, 87, 63, 82]
sum3 = 0
for z in scores:
    sum3 += z
print(sum3)

        (2)统计个数

# 案例1: 统计scories中不及格分数的个数
count = 0
scores = [90, 45, 78, 92, 89, 74, 50, 91, 99, 80, 87, 63, 82]
for x in scores:
    if x < 60:
        count += 1
print(count)

# 练习:统计100以内能被3整除的数的个数
sum1 = 0
for x in range(1,101):
    if x % 3 == 0:
        sum1 += 1
print(sum1)
# 优化
sum1 = 0
for x in range(0,100,3):
    sum1 +=1
print(sum1)
4、while循环

        (1)语法

                        while 条件语句:

                                循环体

        (2)说明

                        “while”:关键字,固定写法

                        “条件语句”:一般是判断语句(实际上可以写任何有结果的表达式)

                        “:”:固定写法(英文)

                        “循环体”:结构上,就是和while保持一个缩进的一条或多条语句(至少一条)

                                         逻辑上,循环体就是需要重复执行的代码

        (3)循环原理

                        不断判断条件语句是否成立,如果条件成立就立即执行循环体,条件不成立整个循                   环体结束                

# 案例:使用循环打印五次'hello world!'
#方法1:使用for循环
for x in range(5):
    print('hello world!')
#方法2:使用while循环
x = 0 
while x < 5:
    print('hello world!')
    x += 1

 5、for和while的选择

        (1)遇到循环问题的时候能用for循环解决问题的时候使用for,for循环解决不了的问题采用                     while

        (2)for循环解决不了循环次数不确定的问题,所以循环次数不确定的时候使用while循环

        (3)循环次数不确定:循环次数由程序使用的时候用户的行为决定

#案例:写程序提示用户输入密码,直到输入正确为止
pw = '123456'
value = None
while value != pw:
    value = input('请输入密码:')

四、循环关键字

        continue和break - 结束循环(指在循环中使用)

1、continue

        结束一次循环()执行循环体的时候如果遇到continue这次循环结束直接进入到下次循环)

2、break

        结束整个循环(执行循环体时如果遇到break整个循环体直接结束,这次没有执行的部分不再执行,也不进入下一次循环)

3、当while遇到break
'''
while True:
	需要重复执行的操作
	if 循环结束的条件:
		break	
'''
# 练习:写一个数字游戏
from random import randint
number = randint(0,100)     # 创建一个0-100的随机整数
while True:
    num = int(input('请输入一个数:'))
    if num > number:
        print('猜大了!请小一点!')
    elif num < number:
        print('猜小了!请大一点!')
    elif num == number:
        print('恭喜!猜对了')
        break
4、else

        (1) 完整的for循环

                        for 变量 in序列:

                                循环体

                        else:

                                代码块

        (2)完整的while循环

                        while 条件语句:

                                循环体

                        else:

                                代码块

        else的存在不会影响循环的执行

        else中的代码块会在上面的循环正常结束后执行,如果上面的循环是因为遇到break而结束,      else中的代码块不会执行

# 案例:判断一个字符串是否是纯数字字符串
str1 = '12344567564'
# 方法1
for x in str1:
    if not '0' <= x <= '9':
        print('不是纯数字字符串')
        break
else:
    print('是纯数字字符串')
# 方法2
count = 0
for x in str1:
    if not '0' <= x <= '9':
        count +=1
        break
if count == 0:
    print('是纯数字字符串')
else:
    print('不是纯数字字符串')

{HNHK7S~M0Y7{W1FWKR1K~A_tmb.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值