- 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) + "秒")
-
- weight = int(input('请输入多少两:'))
- jin = weight // 16
- liang = weight % 16
- print('结果为:' + str(jin) + '斤' + str(liang) + '两')
-
- year = int(input("请输入年份:"))
- result = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
- print(result)
-
生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?……
- if 今天发工资:
-
- 先还信用卡的钱
-
- if 有剩余:
-
- 又可以happy了,O(∩_∩)O哈哈~
-
- else:
-
- 噢,no。。。还的等30天
- else:
-
- 盼着发工资
-
正是因为有了判断,才使得程序世界丰富多彩,充满变化!
判断语句又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支
在Python中,if 语句就是用来进行判断的,格式如下:
- if 要判断的条件:
- 条件成立时,要做的事情
- ……
-
注意:代码的缩进为一个tab键,或者4个空格 ——建议使用空格
- 在 Python 开发中,Tab 和空格不要混用!
需求
- # 1. 定义年龄变量
- age = 18
-
- # 2. 判断是否满 18 岁
- # if 语句以及缩进部分的代码是一个完整的代码块
- if age >= 18:
- print("可以进网吧嗨皮……")
-
- # 3. 思考!- 无论条件是否满足都会执行
- print("这句代码什么时候执行?")
-
注意:
思考
在使用if判断时,只能做到满足条件时要做的事情。那如果需要在不满足条件的时候,做某些事情,该如何做呢?
答案
else,格式如下:
- if 要判断的条件:
- 条件成立时,要做的事情
- ……
- else:
- 条件不成立时,要做的事情
- ……
-
注意:
需求案例
- # 1. 输入用户年龄
- age = int(input("今年多大了?"))
-
- # 2. 判断是否满 18 岁
- # if 语句以及缩进部分的代码是一个完整的语法块
- if age >= 18:
- print("可以进网吧嗨皮……")
- else:
- print("你还没长大,应该回家写作业!")
-
- # 3. 思考!- 无论条件是否满足都会执行
- print("这句代码什么时候执行?")
-
- 条件1 and 条件2
-
条件 1 | 条件 2 | 结果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 不成立 |
不成立 | 成立 | 不成立 |
不成立 | 不成立 | 不成立 |
- 条件1 or 条件2
-
条件 1 | 条件 2 | 结果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 成立 |
不成立 | 成立 | 成立 |
不成立 | 不成立 | 不成立 |
- not 条件
-
条件 | 结果 |
---|---|
成立 | 不成立 |
不成立 | 成立 |
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("非公勿内")
-
- if 条件1:
- 条件1满足执行的代码
- ……
- elif 条件2:
- 条件2满足时,执行的代码
- ……
- elif 条件3:
- 条件3满足时,执行的代码
- ……
- else:
- 以上条件都不满足时,执行的代码
- ……
-
- if 条件1 and 条件2:
- 条件1满足 并且 条件2满足 执行的代码
- ……
-
注意
需求案例
- holiday_name = "平安夜"
-
- if holiday_name == "情人节":
- print("买玫瑰")
- print("看电影")
- elif holiday_name == "平安夜":
- print("买苹果")
- print("吃大餐")
- elif holiday_name == "生日":
- print("买蛋糕")
- else:
- print("每天都是节日啊……")
-
-
elif的应用场景是:同时判断多个条件,所有的条件是平级的
- if 条件 1:
- 条件 1 满足执行的代码
- ……
-
- if 条件 1 基础上的条件 2:
- 条件 2 满足时,执行的代码
- ……
-
- # 条件 2 不满足的处理
- else:
- 条件 2 不满足时,执行的代码
-
- # 条件 1 不满足的处理
- else:
- 条件1 不满足时,执行的代码
- ……
-
需求案例
- # 定义布尔型变量 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("大哥,您要先买票啊")
-
-
目标
需求案例
序号 | 规则 |
---|---|
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("不行,我要和你决战到天亮!")
-
-
常见的计数方法有两种,可以分别称为:
因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则 循环 的计数都从 0 开始
在程序开发中,通常会遇到利用循环重复计算的需求
遇到这种需求,可以:
需求案例
- # 计算 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. 最终结果
- result = 0
-
- # 1. 计数器
- i = 0
-
- # 2. 开始循环
- while i <= 100:
-
- # 判断偶数
- if i % 2 == 0:
- print(i)
- result += i
-
- # 处理计数器
- i += 1
-
- print("0~100之间偶数求和结果 = %d" % result)
-
-
- count = 2
- while count <= 8:
- print(count)
- count += 2
-
- count = 9
- while count >= 3:
- print(count)
- count -= 1
-
- count = -1
- while count >= -6:
- print(count)
- count -= 1
-
- thickness = 1e-5
- count = 0
- while thickness <= 8844.43:
- thickness *= 2
- count += 1
- print("第" + str(count) + "次对折后的厚度是" + str(thickness))
- print(count)
-
break和continue是专门在循环中使用的关键字
- sum = 0
- x = 1
- while True:
- sum = sum + x
- x = x + 1
- if x > 100:
- break
- print sum
-
练习
- sum = 0
- x = 1
- n = 1
- while True:
- if n > 20:
- break
- sum = sum + x
- x = x * 2
- n = n + 1
- print sum
-
需求案例
- sum=0
- i=0
- while i < 10:
- if i%3 == 0:
- i += 1
- continue
- print(i)
- i += 1
- sum += i
- print(sum)
-
break和continue只针对当前所在循环有效
- import random
-
基本案例
- random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20
- random.randint(20, 20) # 结果永远是 20
- random.randint(20, 10) # 该语句是错误的,下限必须小于上限
-
练习
- 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
-