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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,783评论 0 38
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,739评论 0 10
  • [The Swift Programming Language 中文版]本页包含内容: Swift提供了多种流程控...
    风林山火阅读 564评论 0 0
  • —1— 爱的暗流翻滚涌动,在每个毛孔每滴血液里,在每寸肌肤之上。 不觉时间刻度,不觉尘世纷扰。 日子开始像极了诗,...
    一只凤梨阅读 394评论 0 2