分支和循环

一、分支

1. if 语句

  • a.语法:
    if 条件语句:
    代码段
  • b.说明:
    if - 关键字
    条件语句 - 任何有结果的表达式(不管是什么类型)
    代码段和if保持一个缩进的一条或者多条语句
  • c.执行过程:
    先判断条件语句的结果是否是True,如果是则执行,反之则不执行
    注意:如果条件语句的结果不是布尔,会将结果转化为布尔再判断
    赋值语句不能写在if的后面
# 练习:随机产生一个年龄值,如果大于18就打印 成年
import random  # 导入生成随机数的模块
age = random.randint(0, 100)   # 随机生成0~100中的一个数(不包括100)
if age >= 18:
    print("成年")
print("你的年龄是%d" % age)

2. if- else 语句

  • a.语法:
    if 条件语句:
    代码段1
    else:
    代码段2

  • b.执行过程:
    先判断条件语句是否为True,为True就执行代码段1:否则执行代码段2

# num = input("请输入")
num = 12
# try,except,finally为异常捕获
try:    # 尝试执行的代码
    if num & 1 == 0:
        print("我是偶数%d" % num)

    elif num & 1 == 1:
        print("你是奇数%d" % num)
except:    # 发生异常执行的代码 
    print("非奇非偶吧你{0}".format(num))
finally:     # 无论发不发生异常都会执行的代码
    print("Hello python")

3. if - elif - else 语句

  • 语法:
    if 条件语句1:
    代码段1
    elif 条件语句2:
    代码段2
    elif 条件语句3:
    代码段3
    ...
    else:
    代码段n

  • 执行过程:
    先判断条件语句1是否为True,为True就执行代码段1;
    否则,就判断条件语句2是否为True,为True就执行代码段2
    否则,就判断条件语句3是否为True,为True就执行代码段3
    ...
    如果全部条件语句都不执行就执行 else
    注意:1.后面的条件判断前提是前面的条件不成立
    2.elif根据条件可以有多个,else也可以省略

import random
score = random.randint(40, 100)
print("你的考试成绩:%d" % score)
print("你的综合测评:", end="")
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("留级")

4. if 的嵌套

  • 可以在if ,else后面的代码段中,都可以再写其他的if语句
number = random.randint(0, 100)
if number & 1 == 0:
    print("偶数:%d" % number)
    if number % 4 == 0:
        print("4的倍数:%d" % number)
else:
    print("你是奇数:%d" % number)


# 练习:输入一个字符串,判断是否第一个字符是字母,如果是 打印“一字母开头”
#       如果这个字母是大写的,再打印“大写字母”

str1 = input("请输入")
if str1[0].isalpha():
    print("字母开头")
    if str1[0].isupper():
        print("大写字母")
else:
    print(str1)

# 方法2
if "a" <= str1[0] <= "z" or "A" <= str1[0] <= "Z":
    print("以字母开")
    if "A" <= str1[0] <= "Z":
        print("大写字母")
else:
    print(str1

二、for 循环

  • a.语法:
    for 变量 in 序列:
    循环体

  • b.for - 关键字
    变量 - 变量名,(满足变量命名规范)
    in - 关键字
    序列 - 可以是字符串、列表、元组、字典、集合、迭代器、range
    循环体 - 和for保持一个缩进的一条或者多条语句(需要重复执行的代码)

  • c.执行过程:
    让变量取序列中取值,一个一个的取,取完为止;每取一个值,依次执行循环体
    for循环中,序列中值的个数,确定了循环的次数

  • d.如果for后面取到的值,在循环体里面不使用,那么这个变量命令的时候,用一个_来命名

for i in "abc":
    print(i)

range说明

  • range(n) - 产生数字序列,序列中的内容是0~ n-1(结果是序列)
    range(m,n) - 产生数字序列,序列中的内容是m~ n-1
    range(m,n,step) - 产生数字序列,从m开始,每次增加step,直到n-1为止
    range一般用在:
    a.需要产生指定范围的数字序列
    b.单纯的控制for循环的次数
for i in range(5):
    print(i)
print("~"*20)
for i in range(10, 15):
    print(i)

for i in range(20, 30, 2):
    print(i)

练习:获取一个字符串中数字的个数,并在控制台输出

str1 = "sd454df5sd5f45dfd4f5dfdg"

count = 0
for char in str1:
    # print(i)
    if "0" <= char <= "9":
        count += 1
print("数字个数:%d" % count)

三、while 循环

  • a.语法:
    while 条件语句:
    循环体

  • b. 说明:
    while - 关键字
    条件语句 - 有结果的表达式(除了赋值语句,一般的表达式都行)

  • c.执行过程:
    先判断条件语句是否为True,为True就执行循环体;
    执行完循环体再判断条件语句是否为True,为True就执行循环体;
    执行完循环体再判断条件语句是否为True,为True就执行循环体;
    ...
    直到判断条件结果为False,整个循环结束

num = 1
result = 1
while num <= 10:
     result *= num
     num += 1
print(result)

str1 = "abc123"
num = 0
while num < len(str1):
    print(str1[num])
    num += 1

for循环和while循环的选择

  • 使用for循环:
    a. 获取序列中的元素(值)
    b. 循环次数确定

  • while循环:
    a. 死循环
    b. 循环次数不确定

# 不确定循环的次数
# 方法一
value = input('请输入:')
while value != '0':
    value = input('请输入:')
print('结束!')
# 方法二
while True:
    index = input("请输入:")
    if index == "0":
        print("~~~~~~~~~")
        break

四、continue、break和else

  • continue 是一个关键字,只能写在循环中
    功能:当循环执行过程中遇到continue,会结束当次循环,直接今日下次循环的判断
    (直接进入下次循环的判断:for循环就是用比那辆取下一个值
    while就是直接判断条件语句是否为True
for i in range(0, 10):
    if i & 1 == 0:
        continue
    print("我是奇数:%d" % i)
  • break是一个关键字,只能写在循环体中
    功能:当循环过程中遇到可break,整个循环直接结束
for x in range(10):
    print(x)
    break

else

  • a.语法:
    while 条件语句:
    循环
    else:
    代码段

for 变量 in 序列:
循环体
else:
代码段

  • b.执行过程:
    else结构不会影响原循环的执行过程。当循环自然死亡的时候,就会执行else后边的代码段。
    循环因为遇到break而结束的时候不会执行else后边的代码段
for x in range(10):
    print(x)
    if x == 3:
        break
else:
    print('for循环结束了')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 5.1 分支结构 python中分支结构只有if语句,没有switch语句 5.1.1 if语句 a.语法:if ...
    2333_11f6阅读 245评论 0 0
  • 一、分支结构 python中的分支结构只有if结构,没有switch if就是在程序用来做判断的(需要在满足某个条...
    留级是不可能留级的阅读 180评论 0 0
  • 1.if语句 1.1 import random import 是导入一个模块/包的关键字random模块中提供许...
    逆流而上_2eb6阅读 166评论 0 0
  • 生活就像是一面镜子, 你对它笑,它也会对你笑, 照射着人生百态。 生活就像一面墙, 墙里面的人在羡慕墙外面的人拥有...
    浅夏若花阅读 268评论 0 0
  • 头七,一种丧殡习俗。习惯上认为“头七”指的是人去世后的第七日。一般都认为,死者魂魄会于“头七”返家。 雷杰因为...
    GARBIE阅读 531评论 5 2

友情链接更多精彩内容