您当前的位置:首页 > 计算机 > 编程开发 > Python

python精选04集(选择语句)

时间:04-25来源:作者:点击数:

回顾作业

homewor01

total_second = int(input("请输入总秒数"))
hour = total_second // 60 // 60
second = total_second % 60
minute = total_second // 60 % 60
print(str(hour) + "小时" + str(minute) + "分钟" + str(second) + "秒")

homework02

weight = int(input('请输入多少两:'))
jin = weight // 16
liang = weight % 16
print('结果为:' + str(jin) + '斤' + str(liang) + '两')

homew03

year = int(input("请输入年份:"))
result = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(result)

1、判断(if)语句

目标

  • 开发中的应用场景
  • if 语句体验
  • if 语句进阶
  • 综合应用

开发中的应用场景

生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?……

程序中的判断

if 今天发工资:

    先还信用卡的钱

    if 有剩余:

        又可以happy了,O(∩_∩)O哈哈~

    else:

        噢,no。。。还的等30天
else:

    盼着发工资

判断的定义

  • 如果条件满足,才能做某件事情,
  • 如果条件不满足,就做另外一件事情,或者什么也不做

正是因为有了判断,才使得程序世界丰富多彩,充满变化!

判断语句又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支

2、 if 语句体验

2.1 if 判断语句基本语法

Python中,if 语句就是用来进行判断的,格式如下:

if 要判断的条件:
    条件成立时,要做的事情
    ……

注意:代码的缩进为一个tab键,或者4个空格 ——建议使用空格

  • 在 Python 开发中,Tab 和空格不要混用!

2.2 判断语句演练 —— 判断年龄

需求

  1. 定义一个整数变量记录年龄
  2. 判断是否满 18 岁 (>=
  3. 如果满 18 岁,允许进网吧嗨皮
# 1. 定义年龄变量
age = 18

# 2. 判断是否满 18 岁
# if 语句以及缩进部分的代码是一个完整的代码块
if age >= 18:
    print("可以进网吧嗨皮……")

# 3. 思考!- 无论条件是否满足都会执行
print("这句代码什么时候执行?")

注意

  • if语句以及缩进部分是一个完整的代码块

2.3 else 处理条件不满足的情况

思考

在使用if判断时,只能做到满足条件时要做的事情。那如果需要在不满足条件的时候,做某些事情,该如何做呢?

答案

else,格式如下:

if 要判断的条件:
    条件成立时,要做的事情
    ……
else:
    条件不成立时,要做的事情
    ……

注意

  • ifelse语句以及各自的缩进部分共同是一个完整的代码块

2.4 判断语句演练 —— 判断年龄改进

需求案例

  1. 输入用户年龄
  2. 判断是否满 18 岁 (>=
  3. 如果满 18 岁,允许进网吧嗨皮
  4. 如果未满 18 岁,提示回家写作业
# 1. 输入用户年龄
age = int(input("今年多大了?"))

# 2. 判断是否满 18 岁
# if 语句以及缩进部分的代码是一个完整的语法块
if age >= 18:
    print("可以进网吧嗨皮……")
else:
    print("你还没长大,应该回家写作业!")

# 3. 思考!- 无论条件是否满足都会执行
print("这句代码什么时候执行?")

3、 逻辑运算

  • 在程序开发中,通常在判断条件时,会需要同时判断多个条件
  • 只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符
  • 逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件
  • Python 中的逻辑运算符包括:与 and或 or非 not三种

3.1and

条件1 and 条件2
  • 并且
  • 两个条件同时满足,返回True
  • 只要有一个不满足,就返回False
条件 1 条件 2 结果
成立 成立 成立
成立 不成立 不成立
不成立 成立 不成立
不成立 不成立 不成立

3.2or

条件1 or 条件2
  • 或者
  • 两个条件只要有一个满足,返回True
  • 两个条件都不满足,返回False
条件 1 条件 2 结果
成立 成立 成立
成立 不成立 成立
不成立 成立 成立
不成立 不成立 不成立

3.3not

not 条件
  • 不是
条件 结果
成立 不成立
不成立 成立

逻辑运算演练

  1. 练习1: 定义一个整数变量age,编写代码判断年龄是否正确
    • 要求人的年龄在 0-120 之间
  2. 练习2: 定义两个整数变量python_scorec_score,编写代码判断成绩
    • 要求只要有一门成绩 > 60 分就算合格
  3. 练习3: 定义一个布尔型变量is_employee,编写代码判断是否是本公司员工
    • 如果不是提示不允许入内

Exe01:

# 练习1: 定义一个整数变量 age,编写代码判断年龄是否正确
age = 100

# 要求人的年龄在 0-120 之间
if age >= 0 and age <= 120:
    print("年龄正确")
else:
    print("年龄不正确")

Exe02:

# 练习2: 定义两个整数变量 python_score、c_score,编写代码判断成绩
python_score = 50
c_score = 50

# 要求只要有一门成绩 > 60 分就算合格
if python_score > 60 or c_score > 60:
    print("考试通过")
else:
    print("再接再厉!")

Exe03:

# 练习3: 定义一个布尔型变量 `is_employee`,编写代码判断是否是本公司员工
is_employee = True

# 如果不是提示不允许入内
if not is_employee:
    print("非公勿内")

4、if 语句进阶

4.1elif

  • 在开发中,使用if可以判断条件
  • 使用else可以处理条件不成立的情况
  • 但是,如果希望再增加一些条件条件不同,需要执行的代码也不同时,就可以使用elif
  • 语法格式如下:
if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……
  • 对比逻辑运算符的代码
if 条件1 and 条件2:
    条件1满足 并且 条件2满足 执行的代码
    ……

注意

  1. elifelse都必须和if联合使用,而不能单独使用
  2. 可以将ifelifelse以及各自缩进的代码,看成一个完整的代码块

elif 演练 —— 女友的节日

需求案例

  1. 定义holiday_name字符串变量记录节日名称
  2. 如果是情人节应该买玫瑰看电影
  3. 如果是平安夜应该买苹果吃大餐
  4. 如果是生日应该买蛋糕
  5. 其他的日子每天都是节日啊……
holiday_name = "平安夜"

if holiday_name == "情人节":
    print("买玫瑰")
    print("看电影")
elif holiday_name == "平安夜":
    print("买苹果")
    print("吃大餐")
elif holiday_name == "生日":
    print("买蛋糕")
else:
    print("每天都是节日啊……")

4.2if的嵌套

在这里插入图片描述

elif的应用场景是:同时判断多个条件,所有的条件是平级

  • 在开发中,使用if进行条件判断,如果希望在条件成立的执行语句中增加条件判断,就可以使用if 的嵌套
  • if 的嵌套的应用场景就是:在之前条件满足的前提下,再增加额外的判断
  • if 的嵌套的语法格式,除了缩进之外和之前的没有区别
  • 语法格式如下:
if 条件 1:
    条件 1 满足执行的代码
    ……
    
    if 条件 1 基础上的条件 2:
        条件 2 满足时,执行的代码
        ……    
        
    # 条件 2 不满足的处理
    else:
        条件 2 不满足时,执行的代码
        
# 条件 1 不满足的处理
else:
    条件1 不满足时,执行的代码
    ……

if 的嵌套 演练 —— 火车站安检

需求案例

  1. 定义布尔型变量has_ticket表示是否有车票
  2. 定义整型变量knife_length表示刀的长度,单位:厘米
  3. 首先检查是否有车票,如果有,才允许进行安检
  4. 安检时,需要检查刀的长度,判断是否超过 20 厘米
    • 如果超过 20 厘米,提示刀的长度,不允许上车
    • 如果不超过 20 厘米,安检通过
  5. 如果没有车票,不允许进门
# 定义布尔型变量 has_ticket 表示是否有车票
has_ticket = True

# 定义整数型变量 knife_length 表示刀的长度,单位:厘米
knife_length = 20

# 首先检查是否有车票,如果有,才允许进行 安检
if has_ticket:
    print("有车票,可以开始安检...")

    # 安检时,需要检查刀的长度,判断是否超过 20 厘米
    # 如果超过 20 厘米,提示刀的长度,不允许上车
    if knife_length >= 20:
        print("不允许携带 %d 厘米长的刀上车" % knife_length)
    # 如果不超过 20 厘米,安检通过
    else:
        print("安检通过,祝您旅途愉快……")

# 如果没有车票,不允许进门
else:
    print("大哥,您要先买票啊")

5、 综合应用 —— 石头剪刀布

目标

  1. 强化多个条件逻辑运算
  2. 体会import导入模块(“工具包”)的使用

需求案例

  1. 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
  2. 电脑随机出拳 —— 先假定电脑只会出石头,完成整体代码功能
  3. 比较胜负
序号 规则
1 石头 胜 剪刀
2 剪刀 胜 布
3 布 胜 石头
  • 假定电脑就只会出石头,完成整体代码功能
# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
player = int(input("请出拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 - 假定电脑永远出石头
computer = 1

# 比较胜负
# 如果条件判断的内容太长,可以在最外侧的条件增加一对大括号
# 再在每一个条件之间,使用回车,PyCharm 可以自动增加 8 个空格
if ((player == 1 and computer == 2) or
        (player == 2 and computer == 3) or
        (player == 3 and computer == 1)):

    print("噢耶!!!电脑弱爆了!!!")
elif player == computer:
    print("心有灵犀,再来一盘!")
else:
    print("不行,我要和你决战到天亮!")

6、While循环

常见的计数方法有两种,可以分别称为:

  • 自然计数法(从1开始)—— 更符合人类的习惯
  • 程序计数法(从0开始)—— 几乎所有的程序语言都选择从 0 开始计数

因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则 循环 的计数都从 0 开始

6.1 循环计算

在程序开发中,通常会遇到利用循环重复计算的需求

遇到这种需求,可以:

  1. while上方定义一个变量,用于存放最终计算结果
  2. 在循环体内部,每次循环都用最新的计算结果更新之前定义的变量
    在这里插入图片描述

需求案例

  • 计算 0 ~ 100 之间所有数字的累计求和结果
# 计算 0 ~ 100 之间所有数字的累计求和结果
# 0. 定义最终结果的变量
result = 0

# 1. 定义一个整数的变量记录循环的次数
i = 0

# 2. 开始循环
while i <= 100:
    print(i)

    # 每一次循环,都让 result 这个变量和 i 这个计数器相加
    result += i

    # 处理计数器
    i += 1

print("0~100之间的数字求和结果 = %d" % result)

练习

  • 计算 0 ~ 100 之间 所有偶数的累计求和结果

开发步骤

  1. 编写循环确认要计算的数字
  2. 添加结果变量,在循环内部处理计算结果
# 0. 最终结果
result = 0

# 1. 计数器
i = 0

# 2. 开始循环
while i <= 100:

    # 判断偶数
    if i % 2 == 0:
        print(i)
        result += i

    # 处理计数器
    i += 1

print("0~100之间偶数求和结果 = %d" % result)

  • 在终端中显示2 4 6 8
count = 2
while count <= 8:
    print(count)
    count += 2
  • 在终端中显示9 8 7 6 5 4 3
count = 9
while count >= 3:
    print(count)
    count -= 1
  • 在终端中显示-1 -2 -3 -4 -5 -6
count = -1
while count >= -6:
    print(count)
    count -= 1
  • 一张纸的厚度是0.01毫米, 请计算,对折多少次超过珠穆朗玛峰(8844.43米).
thickness = 1e-5
count = 0
while thickness <= 8844.43:
    thickness *= 2
    count += 1
    print("第" + str(count) + "次对折后的厚度是" + str(thickness))
    print(count)

6.2 break 和 continue

breakcontinue是专门在循环中使用的关键字

  • break某一条件满足时,退出循环,不再执行后续重复的代码(跳出)
  • 计算1至100的整数和,我们用while来实现:
sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 1
    if x > 100:
        break
print sum

练习

  • 利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + … 的前20项的和。
sum = 0
x = 1
n = 1
while True:
    if n > 20:
        break
    sum = sum + x
    x = x * 2
    n = n + 1
print sum
  • continue某一条件满足时,不执行后续重复的代码(跳过)

需求案例

  • 累加:循环1–9之间整数,跳过3
sum=0
i=0
while i < 10:
    if i%3 == 0:
        i += 1
        continue
    print(i)
    i += 1
    sum += i
print(sum)

breakcontinue只针对当前所在循环有效

6.2 随机数的处理

  • Python中,要使用随机数,首先需要导入随机数模块—— “工具包”
import random
  • 导入模块后,可以直接在模块名称后面敲一个.然后按Tab键,会提示该模块中包含的所有函数
  • random.randint(a, b),返回[a, b]之间的整数,包含ab

基本案例

random.randint(12, 20)  # 生成的随机数n: 12 <= n <= 20   
random.randint(20, 20)  # 结果永远是 20   
random.randint(20, 10)  # 该语句是错误的,下限必须小于上限

练习

  • 猜数字游戏:随机产生1-100之间的随机数,在终端中重复猜测,直到猜对为止
    提示:请输入 大了 小了 终于猜对了
import random# 生成一个随机数
random_number = random.randint(1, 100)
while True:
input_number = int(input("请输入:"))
if input_number > random_number:
    print("大了")
elif input_number < random_number:
    print("小了")
else:
    print("终于猜对了")
    break

作业

homework01

  • 获取一个开始值,再获取一个结束值.(while)
    打印中间值
    1 10 --> 2 3 4 5 6 7 8 9
    10 1 --> 9 8 7 6 5 4 3 2

homework02

  • 如果按照分数划定结果:(if、else、break)
    90分或以上:excellent
    80分或以上:good
    60分或以上:passed
    60分以下:failed
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门