美文网首页
Python学习笔记-Day03

Python学习笔记-Day03

作者: snape00 | 来源:发表于2019-11-22 23:54 被阅读0次

Python学习笔记

Day_03-分支结构

应用场景

学习了两天的教程,可以看出,所有的例题中的程序都是按照顺序执行的。最初的程序设计也就是这样的。但是当我们需要程序进行“选择”或者“重复”的时候,顺序结构的程序一是代码量会非常大,另外呢也容易出错。比如,幼儿园老师让小朋友做游戏,如果是男生,就站到右侧,如果是女生,就站到左侧;再比如,银行贷款的利率,当本金低于一定标准的时候是一种利率,当高于这一标准时是另外一种利率;还有我们非常熟悉的数学分段函数,不同的自变量区间对应不同的函数式,等等诸如此类,都涉及到了“选择”。

if...else...语句

"""
f(x) = x + 10 (x > = 0)
     = x - 10 (x < 0)

author: chris
version: 0.1
"""
x = float(input("请输入自变量x的值":))

if x > 0 or x == 0:
    print(x + 10)
else:
    print(x - 10)

运行后提示输入自变量x的值,比如输入5.6,运行结果就是15.6。

请输入自变量x的值:5.6
15.6

上面的代码就是一个简单的 if...else... 语句。ifelse 都称作该语句的关键词。在程序中你不能将它用作变量名和其它用途。ifelse两个关键词后面紧跟一个冒号:,内部语句相对于两个关键词有四个空格的缩进(一个Tab)。

语句的逻辑关系是:输入一个值或者存在一个值,首先执行if后面的条件,如果满足,输出if后面的语句;如果关键词if后面的条件不满足,则执行else关键词后面的语句。

借用Vamei大佬的话说,“ifelse就像两个老大,老大只有借着条件赢了,后面的小弟才有机会亮相。”

当然,if...else..语句中,else语句可以没有,如果if语句条件不成立,则程序什么也不执行。

if...elif...else...语句

当判断条件超过2个的时候,就会用到if...elif...else...语句。我现在将上面的一个例题进行修改:

"""
f(x) = x + 10 (x > 0)
     = x (x == 0)
     = x - 10 (x < 0)

author: chris
version: 0.2
"""
x = float(input("请输入自变量x的值":))

if x > 0:
    print("x > 0")
    print(x + 10)
elif x == 0:
    print("x == 0")
    print(x)
else:
    print("x < 0")
    print(x - 10)

if的嵌套

if的嵌套,顾名思义,就是在一个if语句里面在嵌套if语句。我们还是拿数学函数式来举例。

"""
f(x) = x + 10 (x >= 0)
     = x (-5< x < 0)
     = x - 10 (-10 < x <= -5)
     = x - 20 (x <= -10)

author: chris
version:0.1
"""
x = float(input("请输入自变量x的值:"))

if x > 0 or x == 0:
    print(x + 10)
else:
    if -5 < x < 0:
        print(x)
    elif -10 < x <= -5:
        print(x-10)
    else:
        print(x-20)

运行后依次测试不同区间段的自变量x值,很明显可以得到正确的答案。从这个例子中可以看出,在第一层if...else...语句中使用了第二层if...elif...else的嵌套语句。需要注意的是,嵌套的if...elif...else语句后面相对于该层的关键词又缩进了四个空格。

教程作者提到,根据开发需要,if语句是可以嵌套的,但是从python推崇的“扁平化”的原则,为了提高代码的可读性,能扁平化就不适用嵌套。

练习题

1. 英制单位英寸与公制单位厘米互换。

说明:1英寸=2.54厘米,或者1in=2.54cm。

"""
1英寸=2.54厘米,或者1in=2.54cm

输入一个数值,然后给定单位,得出换算后的值。

author: chris
version:0.1
"""

x = float(input("请输入数值:"))
y = str(input("请输入单位:"))

if y == "英寸":
    print("转换结果为:%.2f 厘米" %(2.54 * x))
elif y == "in":
    print("转换结果为:%.2f cm" %(2.54 * x))
else:
    print("请输入正确的数值或单位")

首先,输入3.5“in”,输出结果如下:

请输入数值:3.5
请输入单位:"in"
转换结果为:8.89 cm

输入5.5“英寸”,输出结果如下:

请输入数值:5.5
请输入单位:"英寸"
转换结果为:13.97 厘米

输入6.8“kg”,输出结果如下:

请输入数值:6.8
请输入单位:"kg"
请输入正确的数值或单位

2. 百分制成绩转换为等级制成绩。

如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E.

"""
如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;
70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E

author: chris
version:0.1
"""
achievement = float(input("请输入学生的成绩:"))
if achievement >= 90:
    print("Great! You Got an A!")
elif 80 <= achievement < 90:
    print("Good!You Got a B!")
elif 70 <= achievement < 80:
    print("Not Bad! You Got a C!")
elif 60 <= achievement < 70:
    print("You Got a D!")
else:
    print("What a Pity! You Got a E")

3. 输入三条边长,如果能构成三角形就计算周长和面积

程序代码如下:

# -*- coding: utf-8 -*-
"""
1/首先判断能否组成三角形,a+b>c,a+c>b,b+c>a
2/利用海伦公式求面积

author: chris
version:0.1
"""
a = input("请输入第一条边:")
b = input("请输入第二条边:")
c = input("请输入第三条边:")

if a + b > c and b + c > a and a + c > b:
    print("能构成三角形!")
    print("三角形周长:%.2f" %(a + b + c))
    p = (a + b + c)/2
    S = ((p * (p-a) * (p-b) * (p-c))) ** 0.5
    print("三角形面积:%.2f" %(S))
else:
    print("无法构成三角形!")

输入a、b、c三边长度分别为6,9,12,得到以下运行结果:

请输入第一条边:6
请输入第二条边:9
请输入第三条边:12
能构成三角形!
三角形周长:27.00
三角形面积:19.08

如果输入a、b、c三边长度分别为4,5,12,得到以下运行结果:

请输入第一条边:4
请输入第二条边:5
请输入第三条边:12
无法构成三角形!

小结

这一节中学习了if...elif...else语句的基本用法,同时可通过各种简单的示例加深了对该用法的理解。

相关文章

网友评论

      本文标题:Python学习笔记-Day03

      本文链接:https://www.haomeiwen.com/subject/hkycwctx.html