python基础第五课_if 条件控制&debug 技巧

本文介绍了Python的基础if条件控制语句,包括单一条件、多个条件、嵌套if、if not等,并探讨了debug调试的重要性及常用方法如print和调试工具的使用。此外,还提供了三个实战练习,涉及购物折扣计算、闰年判断和寻找三个整数的最大值。

if 条件控制&debug 技巧

一、if 条件控制

1.if 如果的意思,如果程序符合某种条件,那么就可以做什么事情,就是做判断, 判断有几个结果, True False。

2.得到 True 或者 False 的运算

 2.1 比较

 print( 5 > 4)

 2.2成员 in  / not in

 print("sun" in "sunshine")

 print("孟孟" not in "孟子")

 2.3逻辑运算 and or not

 print( 5<4 and 7 > 3 )



3.语法(在 python 当中,遇到冒号要缩进,表示一个分支)
if 条件表达式 :

例如:
if 5 > 4:

    print("大于")

else:

    print("if后的条件不满足,否则")



4. if / elif / elif /elif/else 完整的 if 表达式

5.注意:在一个完整的if 表达式当中,只会有一个分支代码会被执行,不可能执行2个或者2个以上的分支。

6.只要一个分支满足,剩下的条件不会再判断了。

grade = float(input("请输入你的分数"))

if grade < 40:

    print("恭喜你,得到了一个 E")

elif 40 <= grade < 60:

    print("你是个人才 D")

elif 60 <= grade < 80:

    print("C")

elif 80 <= grade < 90:

    print("B")

else:

    print("A")

 

二、多个if条件

1.if 不需要每次配对 else,也不需要一定得有 elif。



grade = int(input("请输入你的分数"))

if grade < 40:

    print("恭喜你,得到了一个 E")



if 30 <= grade < 60:

    print("你是个人才 D")



if 31 <= grade < 80:

    print("C")



if 29 <= grade < 90:

    print("B")

else:

    print("A")

 

 

  • if的嵌套
1.虽然说 python 可以嵌套很多层 if , 但是我们尽量不要嵌套太多,一般嵌套2层就可以了。



grade = int(input("请输入你的分数:\n"))

name = input("请输入你的姓名:\n")

has_boyfriend = True



if grade < 40:

    print("恭喜你,你的成绩不太好")

    if name == 'yanli':

        print("走后门得到了一个A")

        if has_boyfriend:

            print("早恋,留校察看")

    else:

        print("还好你不是关系户")



else:

    print("你的分数已经很高了")

 

  • if not
例子:

has_boyfriend = True

if has_boyfriend == True:

     print("有男朋友")

else:

     print("单身 dog")



if has_boyfriend:

     print("有男朋友")

else:

     print("单身 dog")



if not has_boyfriend:

    print("单身 dog")

else:

    print("男朋友")

1. if 变量:变量 True, False 的意思

a = True

if a:

    print("aTrue")



2.空字符串代表 False, 只要字符串不是空的,就代表True

name = ''

if name:

    print("输入成功")

else:

    print("输入不成功")



name_new = 'a'

if name_new:

    print("字符串不为空")

else:

    print("81 行输出")



3.空格也是个字符,所以也是代表 True

string = ' '

if string:

    print("有值")



4.数字0 代表 False, 非 0 代表True

5.列表:空列表代表 False

6.字典:空字典代表 False

例子:

empty_list = []   #False

if not empty_list:   #True

    print("a")

else:

    print("B")

 

五、print 调试
1.print 简单好用,就是每一行都要去试
例子:

1 + 1

5 > 4

print("OK")

4 / 0

print("12 OK")



2.当 if条件你不确定那个分支会执行,可以在分支下加print

例子:

a = 1

if a > 6:

    print("if条件 行不运行的")

    a *= 2

else:

    print("else 会运行")

    a -= 4

print(a)

 

六、小结

1.数据类型

1.1列表, 自动化测试中场景,存储所有的用例 [1,2,3,]。

1.2元组: 函数

1.3字典: 自动化测试中场景,存储单条测试数据

1.4字符串

1.5 bool (True, False)

 

  1. 面试题:

2.1元组和列表区别:都是有序,列表可变,元组不可变。

2.2字典和列表区别:字典是无序的,列表是有序的。

 

3.if (条件表达式):  可以不用 else, 也可以不用 elif。

if ...  else:

if ... elif .. elif .. else..  只会执行一个分支。

if ... if ... if... 多组条件表达式,每个 if 是独立的,前面的 if 分支执行完不会影响下一个 if 判断。

if 变量:

if 嵌套。

 

 

4.debug: 调试,非常重要。为什么要调试:因为代码总会出问题,找出问题的过程,调试。

 

  1. 调试方法:

5.1 print

5.2 4 个按钮:step over , run to cursor, 计算器, 播放

http://note.youdao.com/yws/public/resource/bb3dfab7e7331d1665927b8b962fd76b/xmlnote/A550ABAD62A945518D2AEB11BDF32731/5743

 

七、作业

一、题目:

一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣;如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣和最终价格。

输入:
price = xxx

输出:
购买折扣:8 折
优惠价格:xxx 元
答:
price = int(input("购买价格(单位:元):\nprice="))
if 50 <= price <= 100:
    a = price * 0.9
    print(f"购买折扣:9 折\n优惠价格:{a} 元")
elif price > 100:
    b = price * 0.8
    print(f"购买折扣:8 折\n优惠价格:{b} 元")
else:
    c = price
    print(f"购买折扣:不满足折扣金额\n优惠价格:{c} 元")


二、题目:

输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况)

如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年”。

什么是闰年,需要自己了解(需求文档没有解释)
答:
# 1、能被4整除,但不能被100整除;
# 2、能被400整除;
year = int(input("请输入有效年份:\n"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}年是闰年")
else:
    print(f"{year}年不是闰年")


三、题目:

求三个整数中的最大值

a = int(input("please enter the firest number:\n"))
b = int(input("please enter the second number:\n"))
c = int(input("please enter the third number:\n"))

if (a >= b and a >= c):
    print(f"最大值为{a}")
elif (b >= a and b >= c):
    print(f"最大值为{b}")
elif (c >= a and c >= b):
    print(f"最大值为{c}")

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值