前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 基础知识第5讲:条件控制语句

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

作者头像
小海怪的互联网
发布2019-08-23 15:43:55
6260
发布2019-08-23 15:43:55
举报
文章被收录于专栏:小海怪python学习

先看下面一段代码:

代码语言:javascript
复制
print('hello world')
print(111)

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

条件控制语句

1.条件判断 if语句

语法:

if 条件表达式 : 代码块

  • 请参看以下代码:
代码语言:javascript
复制
if  False:print('Hello')

结果为什么都不输出

代码语言:javascript
复制
if True:print('Hello')

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

执行流程:

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

什么是代码块?

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

2.input()函数

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

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

代码语言:javascript
复制
uname=input("请输入用户名:")
if uname == 'admin':
    print('welcom',uname)

3. if--else语句

语法:

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

执行流程:

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

代码语言:javascript
复制
uname=input("请输入用户名:")
if uname == 'admin':
    print('welcom',uname)
else:
    print('输入有误,不是合法的用户')

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

代码语言:javascript
复制
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中只会有一个代码块会执行

我们先看一段代码:

代码语言:javascript
复制
value=10000
if value >= 30000:
    print('有钱就是任性')
elif value >= 20000:
    print('有钱真好')

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

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

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

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

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

我们再看一段代码:

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

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

代码语言:javascript
复制
value = 20000

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

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


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

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

5. if语句练习

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

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

代码语言:javascript
复制
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:根据用户输入的数字判断是奇数还是偶数

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

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

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

代码语言:javascript
复制
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岁计算 经过分析我们的代码如下:

代码语言:javascript
复制
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,则循环终止

死循环:

代码语言:javascript
复制
while True:  #只有特定场景才用,特别消耗资源
    print(1)

分析下面的代码;

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

输出结果 0--19

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

输出结果 1-20

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

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

6. 1 while循环语句练习1

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

代码语言:javascript
复制
#第一种方法:
# 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的倍数,以及个数

代码语言:javascript
复制
#第一种方法:
i = 6
count = 0
while i<100:
    if i % 6 == 0:
        count+=1
        print(i)

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

结果为 6,12 总数为 16

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.06.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 条件控制语句
  • 1.条件判断 if语句
  • 2.input()函数
  • 3. if--else语句
  • 4. if----elif--else语句
  • 5. if语句练习
  • 6. while循环语句
  • 6. 1 while循环语句练习1
  • 6. 1 while循环语句练习2
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档