第五章:条件控制语句

1.if语句

语法 : if条件表达式

代码块

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

if True : print('hello')
>>>hello
if False : print('hello')
>>>不执行,不打印结果

num = 50
if num > 20 : print('num比20大')
>>>num 比20大

num = 10
if num > 20 : print('num比20大')
>>>不执行,不打印结果

if 条件表达式
代码块

什么是代码块?
代码块当中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
代码块就是一种为代码分组的机制

if True:
    print('haha')
    print('abc')
    print('heihei')
    >>>haha
    abc 
    heihei

if False        :
    print('haha')
    print('abc')
    print('heihei')
>>>不执行,不打印结果
num = 30
if num > 20 and num < 40:
    print('num比20大,比40小')
>>>num比20大,比40小

num = 30
if 20 < num < 40:
    print('num比20大,比40小')
>>>num比20大比40小

2.input函数

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

 需求:获取用户输入的最喜欢玩的游戏的名称游戏名称是王者荣耀——>欢迎来到王者荣耀

username = input('请输入您最喜欢玩的游戏的名称:')
if username == '王者荣耀':
    print('欢迎来到王者荣耀')
>>>请输入您最喜欢玩的游戏名称:王者荣耀
欢迎来到王者荣耀

3.if-else语句

if-else语句
语法:
if 条件表达式:
代码块
else:
代码块
执行流程:
if-else语句在执行是,先对if后面的条件表达式进行求值判断
如果为True,则执行if后面的代码块
如果为False,则执行else后面的代码块

value = input('请输入你的工资:')

value = int(value)

# 如果用户的工资大于2000 就执行一个打印语句
if value >= 2000:
    print('你可以养活自己了')
else:
    print('你该加油了')

4.if-elif-else语句

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

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

value = 999

if value >=30000:
    print('有钱就是任性')

elif value >= 20000:
    print('有钱真好')

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

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

else:
    print('你该加油了')
 >>>你该加油了
value = 6000

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

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

elif value >= 10000:
    print('哥也是月薪上万')
 >>>工资还说的过去

5.if语句练习

练习1 根据指定月份所属的季节

3 4 5 春季

6 7 8 夏季

9 10 11 秋季

#12 1 2 冬季

month = 7

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,'冬季')
    >>>7 夏季

month = 12

if month > 12 or month < 1:
    print('月份不存在')

elif 3 <= month <= 5:
    print(month,'春季')

elif 6 <= month <= 8:
    print(month,'夏季')

elif 9 <= month <= 11:
    print(month,'秋季')

else:
    print(month,'冬季')
>>>冬季
练习2 编写一个程序,获取用户输入的一个整数,然后显示这个数奇数还是偶数
获取用户输入的整数
num = int(input('请输入一个任意的整数:'))

# 显示num是奇数还是偶数
if num % 2 == 0:
    print(num,'是偶数')
else:
    print(num,'是奇数')

练习3 编写一个程序,检查任意一个年份是否是闰年
一般的,能被4整除的月份是闰年,并且不能被100整除,不能被4整除的年份是平年
或者可以被400整除的也是闰年
二月有29天就是闰年 有28天就是平年
year = int(input('请输入任意一个年份:'))

if year % 4 == 0 and year % 100 != 0 or year % 400 ==0:
    print(year,'是闰年')
else:
    print(year,'是平年')

练习4 编写一个程序,狗和人的年龄, 输入狗的年龄来显示 人的年龄

1 .如果输入的是负数,请提示一个显示信息
2.狗的年龄是5岁,那么相当于人的年龄是多大呢?
3.换算关系,狗的前两年,每一年相当于人的10.5岁,然后每增加一年就增加四岁
4. 5岁的狗相当于人类的年龄是 10.5 + 10.5 + 4 + 4 + 4 = 33

方案一:



# 方案一:
dog_age = float(input('请输入狗的年龄:'))

person_age = 0
#如果狗的年龄在两岁以下的情况(包含两岁)
if dog_age > 0:

    if dog_age <= 2:
        person_age = dog_age * 10.5
    # 狗的年龄在两岁以上
    else:
        #计算狗在两岁时相当于人的年龄的多少岁
        person_age = 2 * 10.5
        #计算狗超过两后的年龄
        person_age += (dog_age - 2) * 4
    print(dog_age , '岁的狗,年龄相当于' , person_age , '岁的人')
else:
    print('您输入的年龄不合法')

方案二:

# 方案二:(个人方案)
dog_age = float(input('请输入狗的年龄:'))

if dog_age < 0:
    print('对不起,您输入的年龄不存在')

elif 0 < dog_age <= 2:
    person_age = dog_age * 10.5
    print(dog_age, '岁的狗', '相当于', person_age, '岁的人')
else:
    person_age = 2 * 10.5
    person_age += (dog_age - 2) * 4
    print(dog_age , '岁的狗' , '相当于' , person_age , '岁的人')

练习5 编写一个程序,获取小红的成绩

当成绩为100分 奖励一台电脑 (满分100)
当成绩为80-99 奖励一部手机
当成绩为60-79 奖励一本书
其他什么都不奖励,一边玩儿去


# 获取小红的成绩
score = float(input('请输入小红的成绩(0-100):'))

if 0 <= score <=100:
    # 根据分数判断奖励什么东西
    if score == 100:
        print('奖励一台电脑')

    elif score >= 80:
        print('奖励一部手机')

    elif score >= 60:
        print('奖励一本书')
    else:
        print('一边玩儿去')
else:
    print('对不起,您输入的成绩不标准')

6.while语句

循环语句 可以指定代码块重置指定次数
分为两种:while循环和 for循环
while循环
语法:
while 条件表达式:
代码块
else:
代码块

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


# 循环的三个条件

# 第一个条件:初始化表达式  定义一个变量
i = 0
while i < 20: # 第二个条件就是:条件表达式 用来设置执行循环的条件

    print(i)

    # 第三个条件:更新表达式
    i += 1  #(相当于 i = i + 1)

i = 0
while i < 11:

    i += 1

    print(i)
>>>1
2
3
4
5
6
7
8
9
10
11

i = 1
while i < 11:

    print(i)

    i += 1
   
>>>0
1
2
3
4
5
6
7
8
9
10

i = 0
while i < 10:
    i += 1
    print(i)
else:
    print('执行了else语句')
 >>>1
2
3
4
5
6
7
8
9
10
执行了else语句

7.while语句练习

练习1 求100以内所有的偶数之和


# 方案一: 先获取100以内所有的数
i = 0
# 定义一个变量保存结果
result = 0
while i < 100:
    i += 1

    #判断 i 是否是偶数
    if i % 2 == 0:

        result += i  #(result = result + i)
    print('结果为',result)
 >>>结果为 0
结果为 2
结果为 2
结果为 6
结果为 6
结果为 12
结果为 12
结果为 20
结果为 20
结果为 30
结果为 30
结果为 42
结果为 42
结果为 56
结果为 56
结果为 72
结果为 72
结果为 90
结果为 90
结果为 110
结果为 110
结果为 132
结果为 132
结果为 156
结果为 156
结果为 182
结果为 182
结果为 210
结果为 210
结果为 240
结果为 240
结果为 272
结果为 272
结果为 306
结果为 306
结果为 342
结果为 342
结果为 380
结果为 380
结果为 420
结果为 420
结果为 462
结果为 462
结果为 506
结果为 506
结果为 552
结果为 552
结果为 600
结果为 600
结果为 650
结果为 650
结果为 702
结果为 702
结果为 756
结果为 756
结果为 812
结果为 812
结果为 870
结果为 870
结果为 930
结果为 930
结果为 992
结果为 992
结果为 1056
结果为 1056
结果为 1122
结果为 1122
结果为 1190
结果为 1190
结果为 1260
结果为 1260
结果为 1332
结果为 1332
结果为 1406
结果为 1406
结果为 1482
结果为 1482
结果为 1560
结果为 1560
结果为 1640
结果为 1640
结果为 1722
结果为 1722
结果为 1806
结果为 1806
结果为 1892
结果为 1892
结果为 1980
结果为 1980
结果为 2070
结果为 2070
结果为 2162
结果为 2162
结果为 2256
结果为 2256
结果为 2352
结果为 2352
结果为 2450
结果为 2450
结果为 2550

# 方案二:先获取100以内所有的偶数
i = 0
result = 0
while i < 100:
    i += 2
    # 把这些偶数相加
    result += i
print(result)
>>>2550
i = 0
while i < 11:
    i += 1
    print(i)
 >>>1
2
3
4
5
6
7
8
9
10
11

i = 0
while i < 11:
    i += 1
print(i)
>>>11

练习2 求出100以内所有9的倍数,以及个数 11

# 定义一个标记  目的记录循环的次数
j = 0
i = 9
# 定义一个变量,接受9的倍数之和
sum = 0
while i < 100:

    j += 1
    sum += i
    i += 9

print('总和为:',sum,'个数为:',j)
>>>总和为: 594 个数为: 11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值