0. 谁是主角

  • 分支是主角
  • 我前面几篇随笔提到 if 不下2次,是时候说一说 if 了

1. 从三大结构说起

(1) 顺序

  • 顾名思义,就是自上而下,顺序执行

(2) 分支

1) 分支的基本语法

if 条件表达式:
语句1
语句2
语句3
...
  1. 条件表达式就是计算结果(或本身)必须为布尔值的表达式;布尔值:非真即假
  2. 表达式后面的冒号不能少
  3. if 下面的语句,如果属于 if 语句块,则必须使用同一缩进;当然语句中也可以有自己的缩进层级
  4. 条件表达式结果为 True 执行 if 下面属于 if 缩进的语句块

少废话,上例子

# 例1

age = 17
if age < 18:
print("孩子,来这里的都是成年人!")
print("等你成年了再来!")
print("再等一年吧!")
  • 运行结果

孩子,来这里的都是成年人!

等你成年了再来!

再等一年吧!


# 例2

age = 19
if age < 18:
print("孩子,来这里的都是成年人!")
print("等你成年了再来!")
print("再等一年吧!")
print("孩子,两年了,又见面了。等什么呢?赶紧上车吧!")
  • 运行结果

孩子,两年了,又见面了。等什么呢?赶紧上车吧!


# 例3

age = 19
if age < 18:
print("孩子,来这里的都是成年人!")
print("等你成年了再来!")
print("再等一年吧!") # 缩进很重要
print("孩子,两年了,又见面了。等什么呢?赶紧上车吧!")
  • 运行结果

再等一年吧!

孩子,两年了,又见面了。等什么呢?赶紧上车吧!


2) 双向分支

  • if - else 语句

    if 条件表达式:
    语句1
    语句2
    ...
    else:
    语句1'
    语句2'
    ...
  • 双向分支有两个分支,当程序执行到 if - else 语句的时候,一定会执行 if 或 else 中的一个

  • if 和 else 在缩进上是一个层级


补充:input()

  1. 括号中可以写入字符串,运行时执行到这一句,会在屏幕上显示该字符串
  2. 括号内的字符串常用于“友情提醒”
  3. input() 能接受用户输入的内容并返回到程序
  4. input() 返回的内容一定是字符串类型
# 例4

name = input("What's your name?")
print("Welcome," + name + "!")
  • 运行时的截图:

按快捷键运行后出现下图

输入回答后显示为下图

  • 运行结果

What's your name?YorkFish

Welcome,YorkFish!


补充完毕,上例子

# 例5

gender = input('Please enter your gender.(just enter "male" or "female")')
print("Your gender is: {0}".format(gender)) if gender == "male": # == 表示判断是否相等,相等为真,否则为假
print("OK, next.")
else:
print("Welcome!")
  • 运行时的截图:

按快捷键运行后出现下图

输入回答后显示为下图

  • 运行结果

Please enter your gender.(just enter "male" or "female")male

Your gender is: male

OK, next.


# 例6

score = input("Please enter your score: ")
score = int(score) # 需要把 input() 返回的 str 强制转换成 int if score>=90:
print("A")
if score>= 80 and score<90:
print("B")
if score >= 70 and score<80:
print("C")
if score >=60 and score<70:
print("D")
if score < 60:
print("I’m sorry!")
  • 运行时的截图:

按快捷键运行后出现下图

输入回答后显示为下图

  • 运行结果

Please enter your score: 90

A


3) 多路分支

  • 超过两路分支的情况,简称多路分支

    if 条件表达式1:
    语句1
    ...
    elif 条件表达式2:
    语句1'
    ...
    elif 条件表达式3:
    语句1''
    ...
    ...
    else:
    语句1'''
    ...
  • elif 可以有多个

  • else 可选

  • 与双向分支一样,多路分支只会选一个分支执行

  • 注意缩进层级


少废话,上例子

# 例7

#score = input("Please enter your score: ")
#score = int(score)
score = 90 # 方便起见,直接赋个值 if score>=90:
print("A")
elif score>= 80:
print("B")
elif score >= 70:
print("C")
elif score >=60 :
print("D")
else:
print("I'm sorry!")
  • 运行结果

A


注意

  • if 可以嵌套使用,但不推荐
  • python 没有 switch-case 语句(我知识有限,只知道 C/C++、C#、Java 这些 C-Like 阵营的语言都有 switch-case)

(3) 循环

[Python3] 018 if:我终于从分支中走出来了的更多相关文章

  1. Git知识总览(六) Git分支中的远程操作实践

    前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探 ...

  2. git:当本地分支中的代码和develop分支上有很多冲突,希望删掉本地分支,重新建立新的分支,怎么解决?

    git:当本地分支中的代码和develop分支上有很多冲突,希望删掉本地分支,重新建立新的分支,但是git中说你需要先解决当前的冲突,这种情况怎么解决 这种情况可以在代码编辑器中点击commit,然后 ...

  3. Git分支中的远程操作实践

    Git分支中的远程操作实践 前几篇博客陆陆续续的讲了好多关于Git操作的内容, 其中在上篇博客聊了<Git中的merge.rebase.cherry-pick以及交互式rebase>,本篇 ...

  4. Git 对比两分支中同一文件

    语法 git diff <分支名> <分支名> -- 文件名 git diff branch1 branch2 -- path/file.txt 案例 git diff ori ...

  5. 将已经存在的项目提交到gitlab的新分支中

    将已经存在的项目提交到gitlab中 在gitlab中新增用户jack 登录jack这个git用户,然后创建仓库 mxonline 已经写好了部分功能的项目存放在 D:\>cd D:\pytho ...

  6. 从零开始学习PYTHON3讲义(七)条件分支和哥德巴赫猜想

    <从零开始PYTHON3>第七讲 人生是由无数个选择组成,每个选择都有不同的限定条件.现在来说人生有点早是吧:)不过事实的确是这样的. 程序也充满着选择,满足不同的条件,则运行不同的运算. ...

  7. python3 使用pip安装(命令行中)失败或 “not a supported wheel” 解决方案!

    原因1: 安装的不是对应python版本的库,下载的库名中cp36代表python3.6,其它同理. 原因2:(我遇到的情况----下载的是对应版本的库,然后仍然提示不支持当前平台) 百度了一下,说法 ...

  8. python3.4用循环往mysql5.7中写数据并输出

    #!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ pyt ...

  9. Python3.0 调用HTMLTestRunner生成的报告中不能显示用例中print函数的输出

    官方原生的HTMLTestRunner.py支持python2.0版本,python3.0版本的使用需要做一些修改: Python3调用HTMLTestRunner执行用例生成测试报告中,不能正常显示 ...

随机推荐

  1. Revolver Maps-3D地球仪网站定制

    这是个网站统计的小插件,大家可以看到那些国家,哪些城市对本网站进行了访问,很直观的一种表现方式. 这个小插件不需要你写任何代码,只需要去它官方网站定制你自己需要的代码.它的地址是:http://www ...

  2. CSP-S 赛前模板复习

    快读模板 这个连算法都算不上... inline int read() { int x=0,f=1; char ch=getchar(); while(ch<'0' || ch>'9') ...

  3. js 将时间戳转为日期格式

    最近项目需要在前端将一个13位的时间戳显示成日期格式,在网上查了很多都不符合要求,只有一个是能满足要求的,在这记录一下,说不定以后还用的着. 13位时间戳改为yyyy-MM-dd HH-mm-ss 格 ...

  4. 重塑云上的 Java 语言

    音乐无国界,但是音乐人有国界. 云原生亦如此.虽没有限定的编程语言,但应用所使用的编程语言已经决定了应用部署运行的行为. Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体 ...

  5. 8:Spring Boot中thymeleaf模板中使用 Shiro标签

    1,添加 pom.xml grade: compile('com.github.theborakompanioni:thymeleaf-extras-shiro:1.2.1') 2, Subject ...

  6. mybatis添加数据时返回主键 insert 返回主键值

    insert 返回主键值 useGeneratedKeys=“true” parameterType=“USer” keyProperty=“id”, <insert id="inse ...

  7. Codeforces 916B Jamie and Binary Sequence ( 模拟 && 思维 )

    题意 : 给出一个数 n ,要求你用 k 个二的幂来组成这个数,要求输出这 k 个二的幂的指数,如果有多解情况则优先输出最大指数最小的那一个且要求按字典序输出,不存在则输出 No 分析 :  先来说一 ...

  8. sh_05_超市买苹果

    sh_05_超市买苹果 # 1. 定义苹果的单价 price = 8.5 # 2. 挑选苹果 weight = 7.5 # 3. 计算付款金额 money = weight * price # 4. ...

  9. android 启动默认的邮件客户端,多附件的问题

    目前开发的app中需要发送邮件,所以需要调用android默认的邮件客户端,并需要添加多个邮件附件,我该通过哪个组件调用默认的客户端?用什么组件来支持多个附件的电子邮件? 是通过下面的哪一个?(Int ...

  10. [CSP-S模拟测试]:矩阵游戏(数学)

    题目描述 $LZK$发明一个矩阵游戏,大家一起来玩玩吧,有一个$N$行$M$列的矩阵.第一行的数字是$1,2,...,M$,第二行的数字是$M+1,M+2,...,2\times M$,以此类推,第$ ...