分支和循环

一、分支

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循环结束了')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

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