Python 简明教程 – 第五章

这是为我最最最爱的女朋友写的一份简明Python教程。

第五章:条件控制

在这之前需要补充一个全新的变量类型:Bool类型

bool类型只有两种状态,“对”和“错”,在Python中对应的就是“True” 和 “False”,用二进制表示就是“1” 和 “0”

那么什么情况下可以得到bool值呢?

变量之间的比较,一般就是bool值,如果两个变量相同,就是返回的True,不相同则返回False

还有类型转换时会产生bool值,例如 if 123 这里的123是int型,转化为bool则是True,除了int型可以转化为bool,还有其他一些类型也可以转化为bool类型,包括:

  1. 为0的数字,包括0,0.0
  2. 空字符串,包括'',""
  3. 表示空值的None
  4. 空集合,包括(),[],{}

bool值在Python中的条件控制语句有大用,需要牢记用法

if-else与if-elif-else

有如下的一段“代码”

如果 对:
    输出 Hello World
否则:
    输出 Hello Python

将“代码”里面的一些关键字进行替换,就得到

if True:
    print("Hello World")
else:
    print("Hello Python")
执行结果

这就是一段正确的Python代码,其中的if-else语句就是条件控制语句

除了if-else语句意外,还有if-elif- else语句,其中的elif表达的意思就是else if表达的是否则如果。

写出如下的“代码”

如果 错:
    输出 1
否则 如果 错:
    输出 2
否则:
    输出 3

替换得到

if False:
    print(1)
elif False:
    print(2)
else:
    print(3)

现在有一段代码,你能猜测出他的执行结果吗?

# 图书馆借书自动化审批系统

import time # 导入时间库
personName = "小慧" # 借书人姓名
personPermissions = 1 # 借书人是否有权限借书
personNoReturn = 0 # 借书人是否还有未归还书
personLastBook = "狼王梦" # 借书人上次借的书
bookName = "钢铁是怎样炼成的" # 被借书书名
bookPermissions = 1 # 被借书是否有被借权限

if personPermissions: # 判断借书人是否有权限借书
    if not personNoReturn: # 判断借书人是否有书还未归还
        if bookPermissions: # 判断被借书是否有权限被外借
            if personLastBook != bookName: # 判断借书人是否重复借书
                print(personName + "于" + time.ctime() + "借走了" + "《" + bookName + "》")
            else:
                print(personName + "已经借过" + "《" + bookName + "》")
        else:
            print("《" + bookName + "》" + "不允许外借")
    else:
        print(personName + "还有书未归还,不准外借其他书籍")
else:
    print(personName + "没有权限借书籍")

match-case

Python3.10之后的版本引入了match-case的语法,此语法与其他语言的switch-case语法一样。

match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。

示例

# 判断一个人的重量是否超标

personWeight = 60 # 一个人的体重,单位是kg
personHeight = 170 # 一个人的身高,单位是cm
bmi = float('%.1f' % (personWeight/(personHeight/100)**2))
# 进行bmi的运算,公式是 体重/身高^2,身高单位需要转化为米
# float()函数负责四舍五入到一位小数,其中的 '%.1f' 是一个浮点数的占位符
# 该占位符是%.1f,.1f表示的是保留一位小数,后面的 % 表示将后面的值传递给前面的占位符
# 整体就是输出一个只有一位小数的bmi值
level = 0 # 定义bmi等级,0级表示出错,1级表示过低,2级表示正常,3级表示超重,4级表示肥胖

if bmi < 18.5: # 判断bmi是否是1级
    level = 1
elif bmi < 24: # 判断bmi是否是2级
    level = 2
elif bmi < 28: # 判断bmi是否是3级
    level = 3
else: # 如果前面都不是,则bmi是4级
    level = 4

info = '' # 用于定义输出的信息
match level: # match 判断,判断的变量是level
    case 0: # 当bmi等级是0时,info赋值为“程序出错”
        info = '程序出错'
    case 1: # 当bmi等级是1时,info赋值为“过低”
        info = '过低'
    case 2: # 当bmi等级是2时,info赋值为“正常”
        info = '正常'
    case 3: # 当bmi等级是3时,info赋值为“超重”
        info = '超重'
    case 4: # 当bmi等级是4时,info赋值为“肥胖”
        info = '肥胖'

if info == '程序出错': # 如果信息info是“程序出错”,则输出“程序出错”
    print(info)
else: # 否则输出bmi值和bmi等级
    print("您的bmi值是" + str(bmi) + ",体重" + info)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇