python 基础知识第5讲:条件控制语句

先看下面一段代码:

print('hello world')
print(111)

通过上面代码的运行,我们可以发现python的程序代码是自上而下运行的
当我们想将输出顺序改变的话,就需要用到条件控制语句

条件控制语句

1.条件判断 if语句

语法:

if 条件表达式 :
代码块

  • 请参看以下代码:
if  False:print('Hello')

结果为什么都不输出

if True:print('Hello')

结果为 Hello
通过以上代码我们可以分析出:

执行流程:

if语句在执行时,会先对条件表达式进行求值判断,
如果为True,则执行if后的语句
如果为False,则不执行

什么是代码块?

代码块当中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行。
简单来说代码块就是一种为代码分组的机制

2.input()函数

input()函数接受一个标准输入数据,返回为 string 类型。
input() 也可以用于阻止程序结束

需求:获取用户输入的用户名,当用户名是 admin时显示欢迎访问
实现代码:

uname=input("请输入用户名:")
if uname == 'admin':
    print('welcom',uname)

3. if–else语句

语法:

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

执行流程:

if-else语句在执行时,先对if后的条件表达式进行求值判断
如果为True,则执行if后的代码块
如果为False,则执行else后的代码块
上面的代码我们加入esle语句

uname=input("请输入用户名:")
if uname == 'admin':
    print('welcom',uname)
else:
    print('输入有误,不是合法的用户')

再看一下个需求:
让用户输入一个工资,当大于2000时,执行一句语句,当不小于2000时执行一条语句
代码实现:

salary = int(input('请输入您的工资:'))  #由于input接收的都字符串类型的,所以我们需要将接收的内容强转为 int数据类型
if  salary>=2000:
    print('这个薪水勉强可以养活你了')
else:
    print('要饿死了,得加油哦!')

4. if----elif–else语句

可以满足多种条件

语法:

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

执行流程:

if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
如果表达式的结果为True,则执行当前代码块,然后语句结束
如果表达式的结果为False,则继续向下判断,直到找到True为止
如果所有的表达式都是False,则执行else后的代码块
if-elif-else中只会有一个代码块会执行
我们先看一段代码:

value=10000
if value >= 30000:
    print('有钱就是任性')
elif value >= 20000:
    print('有钱真好')

elif value >= 10000:
    print('哥也是月薪上万')

elif value >= 5000:
    print('工资还说的过去')

elif value >= 2000:
    print('可以养活自己了')

else:
    print('你该加油了')

以上输出结果为当条件满足时输出相应的结果

我们再看一段代码:

value = 7000
if value >= 2000:
    print('能养活自己了')
elif value >=5000:
    print('还说得过去')
elif value >= 10000:
    print('哥也是过万的人了')

以上代码通过改变value的值输出的结果都为 “能养活自己了”,我们分析得出当条件是自小往大的顺序执行的话, 不管value值如何变化,程序始终是按满足第一个条件时进行输出(也就是死代码),所以我们为了让程序执行的更加准确需要在条件上加上相应范围,我们再看调整后的代码:

value = 20000

if value >= 2000 and value < 5000:
    print('能养活自己了')

elif value >= 5000 and value < 10000:
    print('工资还说的过去')


elif value >= 10000:
    print('哥也是月薪上万')

此时我们通过运行程序,改变value的值就会根据不同的条件得到不同的输出结果,不至于像第一种情况,永远只输出满足第一个条件结果,所以以后的程序代码编写中要特别注意(不要写死代码)

5. if语句练习

练习1:根据指定的月份打印该月份所属的季节

经过分析我们的代码如下:

month =int(input('请输入月份'))  #让用户输入月分信息
#我们假定 3,4,5为春季,6,7,8为夏季,9,10,11 为秋季,12,1,2为冬季,月份中不能小于1和大于12,当输入小于1或大于12的时候,我们提示用户输入有误

if month < 1 or month >12:
    print('输入的月份不存在,你不知道一年有多少个月吗?')
elif  3 <= month <= 5:   #月份在3-5月
    print(month,'月份是春季,春暖花开,你可以浪了')
elif  6 <= month <= 8:   #月份在6-8月
    print(month,'月份是夏季,地表升温,空调续命')
elif 9 <= month <= 11:  # 月份在9-11月
    print(month, '月份是秋季,收获的季节,快去看看你的爱情收获了没')
else:  # 此时月份在12-次年2月
    print(month, '月份是冬季,被子不让我起床,继续养膘!')
练习2:根据用户输入的数字判断是奇数还是偶数

经过分析我们的代码如下:

num = int(input('请输入1-100的数字:'))  #接收用户输入的数字
if  num % 2 == 0: #通过 % 模运算符,求最后的余数,余数为0 说明是偶数,否则为 奇数
    print(num,'是偶数')
else: 
    print(num,'是奇数')
练习3:根据用户输入的年份判断是否是闰年

经过分析我们的代码如下:

year = int(input('请输入年份:'))  #闰年成立的条件 一般的,能被4整除的年份是闰年不能被100整除,不能被4整除的年份是平年或者可以被400整除的也是闰年 二月有29天就是闰年 28天就是平年
if (year % 4== 0 and year % 100 != 0)  or year % 400 == 0:
    print(year,'年是闰年')
else:
    print(year,'年是平年')
练习4:根据用户输入的狗狗的年龄得出相当于人的多少岁

假设:狗狗的前2年,第一年相当 于人的10.5岁,往后每一年相当于4岁计算
经过分析我们的代码如下:

dog_age = float(input('请输入狗狗的年龄:')) #输入狗狗的年龄
p_age=0
if dog_age < 1 or dog_age >20:
    print('输入有误')
elif 1 < dog_age <=2:
    p_age *=10.5
elif 2 < dog_age <=20:
    p_age +=21+(dog_age-2)*4
print('狗狗的年龄是{}岁,相当于人{}岁的年龄'.format(dog_age,p_age))

6. while循环语句

循环语句:

可以指定代码块重置指定次数
分为两种 while 循环 for 循环

while循环

语法:
while 条件表达式 :
代码块
else:
代码块
执行流程:
while语句在执行时,会先对while后的条件表达式进行求值判断,
如果判断结果为True,则执行循环体(代码块),
循环体执行完毕,继续对条件表达式进行求值判断,以此类推,
直到判断结果为False,则循环终止

死循环:

while True:  #只有特定场景才用,特别消耗资源
    print(1)

分析下面的代码;

i=0  #第一个条件是初始化表达式,定义一个变量
while i < 20: #第二个条件是  条件表达式,用来设置执行循环的条件
    print(i)
    i += 1 # 第三个条件,更新表达式,修改初始化变量的值

输出结果 0–19

i=0  #第一个条件是初始化表达式,定义一个变量
while i < 20: #第二个条件是  条件表达式,用来设置执行循环的条件
     i += 1 # 第三个条件,更新表达式,修改初始化变量的值  
     print(i)

输出结果 1-20

我们将 i+=1 换一下位置

注:特别注意,当上述代码中的第三个条件,位置在输出语句前和输出语句后时,最终的输出结果会发生变化

6. 1 while循环语句练习1

求100以内的偶数之和
分析后代码如下:

#第一种方法:
# sum=0
# i = 0
# while i<=100:
#     if i % 2 == 0:
#         sum += i
#     i += 1
# print(sum)

#第二种方法:
sum=0
i = 0
while i<100:
    i+=2
    if i % 2 == 0:
        sum += i

print(sum)

以上2个方法,我们可以看出,当条件先更新和后更新时,我们的while条件也是不同的

6. 1 while循环语句练习2

求出100以内的所有6的倍数,以及个数

#第一种方法:
i = 6
count = 0
while i<100:
    if i % 6 == 0:
        count+=1
        print(i)

    i+=6
print('总数为{}'.format(count))

结果为 6,12 总数为 16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值