一、条件控制语句的功能
代码通常都是从上到下执行的,但如果加入条件控制语句,则只有满足条件,才会执行条件所控制的语句或代码块。
1.1 if语句
-
语法
if 条件表达式: 代码块或语句
-
代码块的概念
代码块就是实现特定功能的一组代码,同一代码块要么都执行要么都不执行,是实现代码分组的一个机制。 -
if语句的执行流程
先判断if后面的条件表达式的值(True或False);
如果为True,则执行if后的语句或代码块;
如果为False,则不执行。 -
if语句案例
#判断大小 num = 50 if num>20: print("num比20大") # 如果要判断num是否大于20且小于40,可以使用逻辑运算符连接 num = 30 if num > 20 and num < 40: print("num大于20且小于40")
1.2 input()函数
-
input()函数的概念
input()函数为输入函数,其返回值为string类型。当需要从键盘获得某些字符串值时,可以使用该函数。 -
input()函数的应用
当代码中遇到input()函数时,需要输入规定的值并按Enter才可以继续执行其后的代码。因此,input()可以起到暂停程序的功能。 -
input()函数的案例
#获得输入的用户名,当用户名为admin时,返回“欢迎光临” username = input("请输入用户名:") #判断用户名是否为admin if username == "admin": print("欢迎光临")
1.3 if-else语句
-
if-else 语法
if 条件表达式: 语句或代码块 else: 语句或代码块
-
if-else 执行流程
先判断条件表达式的值(True或者False)
如果为True,执行if后的语句或代码块
如果为False,执行else后的语句或代码块 -
if-else 案例
#判断工资大小,如果工资>=2000,返回“继续努力”;如果工资<2000,则返回“该换工作了”。 salary = int(input("请输入你的工资:")) if salary >=2000: print("继续努力") else: print("该换工作了")
1.4 if-elif(多个elif)-else
-
if-elif-else语法
if 条件表达式: 代码块或语句 elif 条件表达式: 代码块或语句 elif 条件表达式: 代码块或语句 . . . else: 代码块或语句
-
if-elif-else执行流程
从上到下依次判断条件表达式的值(True或者False)
如果某个条件表达式为True,则执行其后的代码块且退出if-elif-else代码块
如果某个条件表达式为False,则继续往下判断其他的条件表达式。
如果所有的elif条件表达式均为False,则执行else后的代码块且退出
if-elif-else代码块if-elif-else语句只能执行一个代码块的内容
-
if-elif-else 案列
salary = 30000 if salary >=30000: print("有钱任性") elif salary >= 20000: print("有钱真好") elif salary >=10000: print("小康生活真美好") elif salary >=5000: print("工资刚刚好") elif salary >=2000: print("月光也开心") else: print("花呗月月还") #当条件表达式为从大到小时,程序执行没有问题。当条件表示式为从小到大时,则只会执行第一条代码块。可以用逻辑运算符来解决这一问题。 if salary >=2000 and salary < 5000: print("月光也开心") elif salary >=5000 and salary < 10000: print("工资刚刚好") elif salary >=10000 and salary <20000: print("小康生活真美好") else: print("有钱真好")
二、if条件控制语句练习
练习1 判断某个月份是什么季节
3 4 5为春季,6 7 8为春季,9 10 11为春季12 1 2为春季
方法一:
month = 5
if month==3 or month == 4 or month == 5:
print(month,"春季")
elif month==6 or month == 7 or month == 8:
print(month,"夏季")
elif month==9 or month == 10 or month == 11:
print(month,"秋季")
elif month==12 or month == 1 or month == 2:
print(month,"冬季")
else:
print(month,"该月份不存在")
方法二:
month = 5
#先排除错误的月份
if month > 12 or month < 1:
print(month,"该月份不存在")
elif 3 <= month <=5:
print(month,"春季")
elif 6 <= month <=6:
print(month,"夏季")
elif 9 <= month <=11:
print(month,"秋季")
else:
print(month,"冬季")
练习2 输入一个整数,通过程序判断该数字的奇偶性
#获取用户输入的整数
num =int(input("请输入一个整数:"))
#判断该整数的奇偶性
if num % 2 == 0:
print (num,"是偶数")
else:
print(num,"是奇数")
练习3 检查任意一个年份是否为闰年‘
#获取用户输入的年份
year = int(input("请输入任意一个年份:"))
#判断该年份是否为闰年
if year % 400 == 0:
print(year,"是普通闰年")
elif year % 4 == 0 and year %100 != 0:
print(year,"是世纪闰年")
else:
print(year,"是平年")
练习4 5岁的狗相当于人类的几岁?
狗的前两年相当于人的10.5岁,之后每增加一年就增加4岁
比如狗狗5岁=10.5*2+(5-2)*4=33岁人
方法一:
#获取狗狗的年龄
dog_age = float(input("请输入狗狗的年龄:"))
#判断狗狗的年龄是否合法
if dog_age < 0:
print("狗狗的年龄不能为负数")
#2岁以下狗狗的年龄
elif 0< dog_age <= 2:
human_age = dog_age * 10.5
#2岁以上狗狗的年龄
else:
human_age = 2*10.5 + (dog_age - 2) * 4
print("狗狗的年龄",dog_age,"相当于人的年龄", human_age)
方法二:
#获取狗狗的年龄
dog_age = float(input("请输入狗狗的年龄:"))
#判断狗狗的年龄是否合法
if dog_age > 0:
#2岁以下狗狗的年龄
if dog_age <= 2:
human_age = dog_age * 10.5
#2岁以上狗狗的年龄
else:
human_age = 2*10.5 + (dog_age - 2) * 4
print("狗狗的年龄",dog_age,"相当于人的年龄", human_age)
else:
print("输入的年龄不合法")
三、while循环语句
-
while 语法
while 条件表达式: 代码块 else: 代码块
-
while语句执行流程
先判断while后的条件表达式的值(True或者False)
如果为True,则执行代码块,然后继续判断while后的条件表达式是否满足条件,依次类推,直到while后的条件表达式为False,退出循环。如果有else语句,则while条件表达式为False时,执行else语句 -
循环三要素
#第一个 初始化表达式 通过初始化表达式定义初始变量 i = 0 #第二个 条件表示式 通过条件表示式设置循环执行次数 while i < 10: print(i) #第三个 更新表达式 通过更新表达式改变初始变量的值 i += 1
i= 0 先更新后打印 循环次数为10 ,打印结果为1-10
i= 0 先打印后更新 循环次数为10 ,打印结果为0-9
-
while语句练习
练习1 求100以内所有偶数之和方法一: i = 0 #定义一个变量,保留所有偶数和 sum = 0 while i < 100: i += 1 #判断1-100内的偶数 if i % 2 == 0: #计算所有偶数的和 sum += i print("sum =",sum) 方法二: i = 0 sum = 0 while i < 100: i += 2 sum += i print("sum = ",sum)
练习2 求100以内所有9的倍数之和 以及个数
方法一:
i = 0
j = 0
#定义一个变量,保留所有偶数和
sum = 0
while i < 100:
i += 1
#判断1-100内的9的倍数
if i % 9 == 0:
#计算所有9的倍数的和
sum += i
j += 1
print("sum = ",sum,"次数=",j)
方法二:
i = 0
j = 0
sum = 0
while i < 100:
i += 9
sum += i
j += 1
print("sum = ",sum,"次数=",j)