Python 05

Python 05

1 条件运算符

1.1 基本结构

  • 语句1 if 表达式 else 语句2

1.2 执行过程

  • 先对if 与 else 之间的表达式进行求值判断,若值为 1 ,执行语句 1,否则执行语句 2,如:
print('python') if True else print('java')
  • 判断:表达式 True 的值默认为 1,所以执行语句 1,所以执行结果为
python

1.3 简单案例

1.3.1 案例1
a = 10
b = 20
print('a的值比较大') if a > b else print('b的值比较大')
输出结果为
b的值比较大
1.3.2 案例2:求 a 和 b 之间的最大值
a = 30
b = 40
m = a if a > b else b
print('a 和 b 之间的最大值为', m)
输出结果为
a 和 b 之间的最大值为 40

2 运算符的优先级

注:本节需要用到“非布尔值的与或运算的相关知识”,如未掌握可以查看文章“Python 04”

案例:

a = 2 or 3 and 4
print('a =', a)

分析:

  • 若 or 的优先级比 and 高, 先执行 or 或运算,2 or 3 = 2, 再执行 and 与运算,2 and 4 = 4,a = 4
  • 若 or 的优先级与 and 相同,从左向右执行与或运算,2 or 3 = 2, 2 and 4 = 4 a = 4
  • 若 or 的优先级比 and 低, 先执行 and 与运算,3 and 4 = 4, 再执行 or 或运算,2 or 4 = 2 a = 2
运行结果
a = 2

结论:

  • 运算符and 的优先级比 or 高

3 if 语句

3.1 if 语句的语法

if 条件表达式:
	语句/代码块

3.2 if 语句的执行流程

  • 先判断 if 后的条件表达式,为 True 则执行,否则不执行
3.2.1 案例1:
num = 50
if num > 20:
    print('num 比 20 大')
print('判断完毕')
结果:
num 比 20 大
判断完毕
3.2.2 案例2:
num = 50
if num < 20:
    print('num 比 20 大')
print('判断完毕')
结果:
判断完毕
3.2.3 结论:默认情况下,if 语句只会执行紧跟其后的一个语句

3.3 代码块

  • 代码块就是一种为代码的分组机制,以缩进开始(一般为 1 tab = 4 空格),恢复缩进结束,同一个代码块中的代码要么都执行,要么都不执行

注:如果希望 if 语句后执行多条语句,则可以在 if 后跟着一个代码块

3.3.1 案例1:
num = 10
if num > 20:
    print('num 比 20 大')
    print('ha ha')		# 本行和上一行为代码块内容
print(123) 
结果:
123
3.3.2 案例2:
num = 10
if num < 20:
    print('num 比 20 大')
    print('ha ha')
print(123) 
结果:
num 比 20 大
ha ha
123

4 input() 函数

4.1 功能:接收一个输入数据,返回为 str 类型

4.2 案例:获取用户输入的名字,如果名字是 python, 输出 “欢迎访问”

username = input('请输入用户名:')      # 获取用户输入的名字
if username == 'python':    # 判断用户名字是否是 python
    print('欢迎访问')
运行结果:
请输入用户名:python
欢迎访问
请输入用户名:java

4.3 错误案例

val = input('请输入你的工资:')
if value >= 2000:
    print('能养活自己了!!')
4.3.1 报错内容:TypeError: ‘>=’ not supported between instances of ‘str’ and ‘int’
4.3.2 错误原因:input函数的返回值类型为 str 字符串类型,2000 为整数类型
4.3.3 修正方法:在 input() 函数之后增加一个类型转换
4.3.4 修正后代码:
val = input('请输入你的工资:')
value = int(val)
if value >= 2000:
    print('能养活自己了!!')

5 if - else 语句

5.1 语法

if 条件表达式:
    代码块
else:
    代码块

5.2 案例:

value = input('请输入你的工资:')
value = int(value)
if value >= 2000:
    print('能养活自己了!!')
else:
    print('你该加油了!!')
运行结果:
请输入你的工资:5000
能养活自己了!!
请输入你的工资:1900
你该加油了!!

6 if - elif - else 语句

6.1 基础案例:

value = int(input('请输入你的工资:'))

if value >= 30000:
    print('有钱任性')
elif value >= 20000:
    print('有钱真好')
elif value >= 10000:
    print('哥们也月薪上万了')
elif value >= 5000:
    print('工资还说得过去')
elif value >= 2000:
    print('能养活自己了')
else:
    print('你该加油了')
运行结果:与输入值有关,类似于前面的案例
注意:if - elif - else 语句每次运行只执行一个代码块

6.2 由基础案例稍作修改产生的问题案例:

value = int(input('请输入你的工资:'))

if value >= 2000:
    print('能养活自己了')
elif value >= 5000:
    print('工资还说得过去')
elif value >= 10000:
    print('哥们也月薪上万了')
elif value >= 20000:
    print('有钱真好')
elif value >= 30000:
    print('有钱任性')

6.2.1 案例中存在的问题:只要工资大于 2000,就会默认执行第一个代码块,不往下进行判断
6.2.2 解决问题的办法:问题修正 - 运用 and 运算符增加条件
6.2.3 代码演示:
value = int(input('请输入你的工资:'))

if value < 2000:
    print('你该加油了')
elif value >= 2000 and value <5000:
    print('能养活自己了')
elif value >= 5000 and value < 10000:
    print('工资还说得过去')
elif value >= 10000 and value < 20000:
    print('哥们也月薪上万了')
elif value >= 20000 and value < 30000:
    print('有钱真好')
else:
    print('有钱任性')

6.3 if - elif - else 语句练习

练习1:根据输入的月份输出该月份所属的季节
  • 若输入 3 至 5月则输出春季
  • 若输入 6 至 8月则输出夏季
  • 若输入 9 至 11月则输出秋季
  • 若输入 12 至 2 月则输出冬季
代码写法不一,这里给出一种作为参考
month = int(input('请输入月份'))
if month == 3 or month == 4 or month == 5:
    print('春季')
elif month == 6 or month == 7 or month == 8:
    print('夏季')
elif month == 9 or month == 10 or month == 11:
    print('秋季')
elif month == 12 or month == 1 or month == 2:
    print('冬季')
else:
    print('月份不存在')
输出结果可以满足题目的要求
练习2:我家的狗 5 岁了,5岁的狗相当于人多大的年龄呢?
  • 注:人与狗年龄的关系:狗的前两年每一年相当于人的 10.5 岁,之后的每一年相当于人的 4 岁
  • 通过数学计算可得:5 岁的狗相当于人类的年龄是 10.5 + 10.5 + 4 + 4 + 4 = 33
  • 要求:编写一个程序获取狗的年龄,通过程序判断人的年龄并输出,如果输入的年龄是负数,提示错误信息

参考代码:

dog_age = float(input('请输入狗的年龄'))
person_age = 0      # 给人的年龄赋初始值
if dog_age > 0:
    if dog_age <= 2:
        person_age = dog_age * 10.5
    else:
        person_age = 2 * 10.5
        person_age += (dog_age - 2) * 4

    print(dog_age, '岁的狗相当于', person_age, '岁的人')        # 只有输入的年龄合法才能输出
else:
    print('输入的年龄不合法')

7 while 语句

7.1 引入 - 需要得到如下的输出结果

1
1
1
1

一般做法:

print(1)
print(1)
print(1)
print(1)
  • 该做法存在的不足:只能进行少数量的输入

用 while 循环操作:

i = 0
while i < 4:
    print(1)
    i += 1

7.2 while 循环

7.2.1 问题案例
while True:
    print('haha')
运行结果:
haha
haha
haha
.
.
.
haha
.
.
案例中存在的问题:只要不按“停止”键让程序停止运行,程序就会一直输出结果“haha”
7.2.2 语法
while 表达式:
    代码块
else:
    代码块
7.2.3 循环三要素
案例:
i = 0
while i < 20:
    print(i, 'haha')
    i += 1
else:
    print('我是 else 语句中的代码')
  • 1.初始化表达式(案例中的 i = 0)
  • 2.条件表达式:用来设置循环执行的条件(案例中 i < 20)
  • 3.更新条件表达式:修改初始化变量的值,防止循环无止地执行(案例中 i += 1)

7.3 while 语句练习

题目:求 100 以内所有偶数之和 - 结果为2550
参考代码:
i = 0
r = 0       # 保存输出结果,也可理解为输出结果的初值
while i < 100:
    i += 2
    r += i
print('100 以内所有偶数的和为', r)
输出结果:
100 以内所有偶数的和为 2550
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值