1. 初始条件判断if-else

1-1. 什么是条件判断?

image.pngimage.png

能改口叫妈吗?用代码怎么实现

  1. # 你和女朋友能结婚吗?
  2. # 输入是否有房(1表示有房,0表示没有)
  3. Fang = int(input('小伙子,广州有房吗(输入1表示有;0表示没有):'))
  4. # 判断输入结果是否为1,即有房
  5. if Fang == 1:
  6. print('小伙子看起来一表人才年轻有为,明天让你爸妈过来谈一下你们的婚事吧')
  7. # else,否则的意思,就是不满足条件
  8. else:
  9. print('不好意思小伙子,你和我家闺女不太合适')
  10. 输出结果1
  11. 小伙子,广州有房吗(输入1表示有;0表示有):1
  12. 小伙子看起来一表人才年轻有为,明天让你爸妈过来谈一下你们的婚事吧
  13. 输出结果2
  14. 小伙子,广州有房吗(输入1表示有;0表示有):0
  15. 不好意思小伙子,你和我家闺女不太合适

1-2. 认识一下上面的五行代码

  1. Fang = int(input('小伙子,广州有房吗(输入1表示有;0表示有):'))
  2. if Fang == 1:
  3. print('小伙子看起来一表人才年轻有为,明天让你爸妈过来谈一下你们的婚事吧')
  4. else:
  5. print('不好意思小伙子,你和我家闺女不太合适')
  6. 结构解析下来就是:
  7. if 要判断的条件:
  8. 满足条件则执行这里的内容。else这个代码块的就不执行了。
  9. 不满足,代码就往下走,这块代码不执行,直接执行else
  10. else:
  11. 否则,即不满足上面的条件,执行这里的代码。if语句冒号后面的代码就不执行了。
  12. 这就是条件判断
  • if 后面必须有空格
  • if、else语句结尾必须有冒号(半角)
  • 这个条件下的分支,以缩进来表示

1-3. 代码缩进与分支

这次代码与之前我们见过的代码有什么不一样?比较一下
image.png

所有的代码都在一列,左对齐了

image.png

部分代码有缩进

缩进代表什么?
Python语言中,用缩进表示代码块,或者叫分支。就是从属关系。其他语言中往往还需要{}和缩进配合来表示。而Python只需要缩进就可以了,这就是Python语言风格的体现,简洁。

  • 用缩进表示从属关系,缩进部分的代码从属于他上面的语句或者结构。
  • 分支中的每一句,都必须整齐缩进(没有强制要求是几个空格,但是必须一致,一般是4个空格。)
  • 使用pycharm时,需要分支时,自动帮我们缩进了,不用我们自己打,所以平时没什么感知。
    • 切记慎用tab键。特别是空格键和tab键混用。因为工作是协同开发中,每个人用的代码编辑器不同,操作系统不同,看似一致,实际合并代码可能会造成代码紊乱。
    • 具体可参考(https://blog.csdn.net/zxy131072/article/details/86147031

2. 【elif】 凡事不止有两个选择

不是每个丈母娘都是要求买房的,有些丈母娘很开明,比方说丈母娘开出的条件是【广州有房、博士学位、年薪50万起】满足一个就可以娶她女儿。
那用代码怎么表示呢?

  1. # 你和女朋友能结婚吗?
  2. # 你满足下面条件吗【广州有房、博士学位、年薪50万】
  3. # 输入你的自身情况
  4. Fang = input('小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):')
  5. if Fang == '广州有房':
  6. print('小伙子看起来一表人才')
  7. print('明天让你爸妈过来谈一下你们的婚事吧')
  8. elif Fang == '博士学位':
  9. print('小伙子学历不错')
  10. print('明天让你爸妈过来谈一下你们的婚事吧')
  11. elif Fang == '年薪50万':
  12. print('小伙子年轻有为呀')
  13. print('明天让你爸妈过来谈一下你们的婚事吧')
  14. else:
  15. print('不好意思小伙子,你和我家闺女不太合适')
  16. 执行结果1
  17. 小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):广州有房
  18. 小伙子看起来一表人才
  19. 明天让你爸妈过来谈一下你们的婚事吧
  20. 执行结果2
  21. 小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):博士学位
  22. 小伙子学历不错
  23. 明天让你爸妈过来谈一下你们的婚事吧
  24. 执行结果3
  25. 小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):年薪50
  26. 小伙子年轻有为呀
  27. 明天让你爸妈过来谈一下你们的婚事吧
  28. 执行结果4
  29. 小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):我爱她,很爱很爱,我能给她幸福
  30. 不好意思小伙子,你和我家闺女不太合适
  • 类似于上面的例子,有多个条件需要判断时,使用elif。
  • elif必须和if一起使用,否则出错;
  • else 一般用在最后,即所有条件都不满足时使用

3. 多条件比较和逻辑

丈母娘的要求只有一个???
不会的,一般都是要同时满足多个要求才行,例如【身高175以上、广州有房、硕士学位、年薪30万起、28岁以下】。必须满足所有条件才行。代码怎么写?

  1. # 丈母娘要求满足以下全部条件
  2. 【身高175以上、广州有房、硕士学位、年薪30万起、28岁以下】
  3. age = int(input('今年多少岁:'))
  4. Tall = int(input('你的身高:'))
  5. Fang = input('广州有房吗:')
  6. Education = input('什么学历:')
  7. Salary = int(input('年薪有多少万:'))
  8. # 判断条件:年龄小于28岁,身高大于175,广州有房, 学历是硕士学历或者博士学位, 年薪大于30万
  9. # and,表示同时满足;or表示满足其中一个条件就可以了。
  10. if age<28 and Tall>175 and Fang=='广州有房' and (Education=='硕士学位' or Education=='博士学位') and Salary>30 :
  11. print('小伙子一表人才,年轻有为')
  12. print('我看你和我家闺女很般配')
  13. print('明天叫你父母过来谈你们的婚事吧')
  14. else:
  15. print('不好意思小伙子,你和我家闺女不太合适')
  16. 执行结果1
  17. '''
  18. 今年多少岁:26
  19. 你的身高:180
  20. 广州有房吗:广州有房
  21. 什么学历:博士学位
  22. 年薪有多少万:50
  23. 小伙子一表人才,年轻有为
  24. 我看你和我家闺女很般配
  25. 明天叫你父母过来谈你们的婚事吧
  26. '''
  27. 执行结果2
  28. '''
  29. 今年多少岁:30
  30. 你的身高:172
  31. 广州有房吗:没有
  32. 什么学历:大专
  33. 年薪有多少万:10
  34. 不好意思小伙子,你和我家闺女不太合适
  35. '''
  • 这里运用了两种运算符:比较运算符(> < ==)和逻辑运算符(and/or/not)。具体定义见上一节运算符。

4. if嵌套

既然一定要在广州买房才能娶到心爱的姑娘,那就买房吧。但是买房需要很多的条件。
例如:户口、公积金贷款权限、商贷权限
image.png
你能在广州买房给心爱的她一个家吗?

  1. # 输入是否为广州户口
  2. house = input('你的户口在哪?广州吗:')
  3. if house == '广州户口':
  4. print('有广州户口,可以看房了')
  5. time = int(input('广州公积金缴存时间:')) # 输入公积金缴存时间
  6. if time >=2: # 如果时间大于2年,可以公积金贷款买房
  7. print('公积金缴存2年以上,可以公积金贷款')
  8. print('公积金买房成功,迎娶白富美')
  9. else: # 如果不足2年,只能商业贷款
  10. print('商业贷款')
  11. Salary = int(input('月收入多少元:')) # 输入月收入
  12. # 假设每月应还房贷八千
  13. Monthly_Supply = 8000
  14. if Salary/2 >= Monthly_Supply:
  15. print('可以进行商业贷款买房')
  16. print('迎娶白富美,走向人生巅峰')
  17. else:
  18. print('太穷,给不了她幸福,只能祝她幸福了')
  19. else:
  20. print('没有户口,买不了房,我们注定有缘无分')
  21. 逻辑如上图
  22. 输出结果1
  23. '''
  24. 你的户口在哪?广州吗:北京户口
  25. 没有广州户口,买不了房,我们注定有缘无分
  26. '''
  27. 输出结果2
  28. '''
  29. 你的户口在哪?广州吗:广州户口
  30. 有广州户口,可以看房了
  31. 广州公积金缴存时间:3
  32. 公积金缴存2年以上,可以公积金贷款
  33. 公积金买房成功,迎娶白富美
  34. '''
  35. 输出结果3
  36. '''
  37. 你的户口在哪?广州吗:广州户口
  38. 有广州户口,可以看房了
  39. 广州公积金缴存时间:1
  40. 商业贷款
  41. 月收入多少元:20000
  42. 可以进行商业贷款买房
  43. 迎娶白富美,走向人生巅峰
  44. '''
  45. 输出结果4
  46. '''
  47. 你的户口在哪?广州吗:广州户口
  48. 有广州户口,可以看房了
  49. 广州公积金缴存时间:1
  50. 商业贷款
  51. 月收入多少元:12000
  52. 太穷,给不了她幸福,只能祝她幸福了
  53. '''

这就是嵌套

  • 满足某个条件后继续往下走,后面还有其他的条件判断。
  • 还是注意缩进表示分支,同一层分支的,缩进格数一定要相同

祝天下有情人终成眷属