1. 初始条件判断if-else
1-1. 什么是条件判断?


能改口叫妈吗?用代码怎么实现
# 你和女朋友能结婚吗?# 输入是否有房(1表示有房,0表示没有)Fang = int(input('小伙子,广州有房吗(输入1表示有;0表示没有):'))# 判断输入结果是否为1,即有房if Fang == 1:print('小伙子看起来一表人才年轻有为,明天让你爸妈过来谈一下你们的婚事吧')# else,否则的意思,就是不满足条件else:print('不好意思小伙子,你和我家闺女不太合适')输出结果1:小伙子,广州有房吗(输入1表示有;0表示有):1小伙子看起来一表人才年轻有为,明天让你爸妈过来谈一下你们的婚事吧输出结果2:小伙子,广州有房吗(输入1表示有;0表示有):0不好意思小伙子,你和我家闺女不太合适
1-2. 认识一下上面的五行代码
Fang = int(input('小伙子,广州有房吗(输入1表示有;0表示有):'))if Fang == 1:print('小伙子看起来一表人才年轻有为,明天让你爸妈过来谈一下你们的婚事吧')else:print('不好意思小伙子,你和我家闺女不太合适')结构解析下来就是:if 要判断的条件:满足条件则执行这里的内容。else这个代码块的就不执行了。不满足,代码就往下走,这块代码不执行,直接执行elseelse:否则,即不满足上面的条件,执行这里的代码。if语句冒号后面的代码就不执行了。这就是条件判断
- if 后面必须有空格
 - if、else语句结尾必须有冒号(半角)
 - 这个条件下的分支,以缩进来表示
 
1-3. 代码缩进与分支
这次代码与之前我们见过的代码有什么不一样?比较一下
所有的代码都在一列,左对齐了

部分代码有缩进
缩进代表什么?
Python语言中,用缩进表示代码块,或者叫分支。就是从属关系。其他语言中往往还需要{}和缩进配合来表示。而Python只需要缩进就可以了,这就是Python语言风格的体现,简洁。
- 用缩进表示从属关系,缩进部分的代码从属于他上面的语句或者结构。
 - 分支中的每一句,都必须整齐缩进(没有强制要求是几个空格,但是必须一致,一般是4个空格。)
 - 使用pycharm时,需要分支时,自动帮我们缩进了,不用我们自己打,所以平时没什么感知。
- 切记慎用tab键。特别是空格键和tab键混用。因为工作是协同开发中,每个人用的代码编辑器不同,操作系统不同,看似一致,实际合并代码可能会造成代码紊乱。
 - 具体可参考(https://blog.csdn.net/zxy131072/article/details/86147031)
 
 
2. 【elif】 凡事不止有两个选择
不是每个丈母娘都是要求买房的,有些丈母娘很开明,比方说丈母娘开出的条件是【广州有房、博士学位、年薪50万起】满足一个就可以娶她女儿。
那用代码怎么表示呢?
# 你和女朋友能结婚吗?# 你满足下面条件吗【广州有房、博士学位、年薪50万】# 输入你的自身情况Fang = input('小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):')if Fang == '广州有房':print('小伙子看起来一表人才')print('明天让你爸妈过来谈一下你们的婚事吧')elif Fang == '博士学位':print('小伙子学历不错')print('明天让你爸妈过来谈一下你们的婚事吧')elif Fang == '年薪50万':print('小伙子年轻有为呀')print('明天让你爸妈过来谈一下你们的婚事吧')else:print('不好意思小伙子,你和我家闺女不太合适')执行结果1:小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):广州有房小伙子看起来一表人才明天让你爸妈过来谈一下你们的婚事吧执行结果2:小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):博士学位小伙子学历不错明天让你爸妈过来谈一下你们的婚事吧执行结果3:小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):年薪50万小伙子年轻有为呀明天让你爸妈过来谈一下你们的婚事吧执行结果4:小伙子,啥条件呀(广州有房、博士学位、年薪50万、啥也没有):我爱她,很爱很爱,我能给她幸福不好意思小伙子,你和我家闺女不太合适
- 类似于上面的例子,有多个条件需要判断时,使用elif。
 - elif必须和if一起使用,否则出错;
 - else 一般用在最后,即所有条件都不满足时使用
 
3. 多条件比较和逻辑
丈母娘的要求只有一个???
不会的,一般都是要同时满足多个要求才行,例如【身高175以上、广州有房、硕士学位、年薪30万起、28岁以下】。必须满足所有条件才行。代码怎么写?
# 丈母娘要求满足以下全部条件【身高175以上、广州有房、硕士学位、年薪30万起、28岁以下】age = int(input('今年多少岁:'))Tall = int(input('你的身高:'))Fang = input('广州有房吗:')Education = input('什么学历:')Salary = int(input('年薪有多少万:'))# 判断条件:年龄小于28岁,身高大于175,广州有房, 学历是硕士学历或者博士学位, 年薪大于30万# and,表示同时满足;or表示满足其中一个条件就可以了。if age<28 and Tall>175 and Fang=='广州有房' and (Education=='硕士学位' or Education=='博士学位') and Salary>30 :print('小伙子一表人才,年轻有为')print('我看你和我家闺女很般配')print('明天叫你父母过来谈你们的婚事吧')else:print('不好意思小伙子,你和我家闺女不太合适')执行结果1:'''今年多少岁:26你的身高:180广州有房吗:广州有房什么学历:博士学位年薪有多少万:50小伙子一表人才,年轻有为我看你和我家闺女很般配明天叫你父母过来谈你们的婚事吧'''执行结果2:'''今年多少岁:30你的身高:172广州有房吗:没有什么学历:大专年薪有多少万:10不好意思小伙子,你和我家闺女不太合适'''
- 这里运用了两种运算符:比较运算符(> < ==)和逻辑运算符(and/or/not)。具体定义见上一节运算符。
 
4. if嵌套
既然一定要在广州买房才能娶到心爱的姑娘,那就买房吧。但是买房需要很多的条件。
例如:户口、公积金贷款权限、商贷权限
你能在广州买房给心爱的她一个家吗?
# 输入是否为广州户口house = input('你的户口在哪?广州吗:')if house == '广州户口':print('有广州户口,可以看房了')time = int(input('广州公积金缴存时间:')) # 输入公积金缴存时间if time >=2: # 如果时间大于2年,可以公积金贷款买房print('公积金缴存2年以上,可以公积金贷款')print('公积金买房成功,迎娶白富美')else: # 如果不足2年,只能商业贷款print('商业贷款')Salary = int(input('月收入多少元:')) # 输入月收入# 假设每月应还房贷八千Monthly_Supply = 8000if Salary/2 >= Monthly_Supply:print('可以进行商业贷款买房')print('迎娶白富美,走向人生巅峰')else:print('太穷,给不了她幸福,只能祝她幸福了')else:print('没有户口,买不了房,我们注定有缘无分')逻辑如上图输出结果1'''你的户口在哪?广州吗:北京户口没有广州户口,买不了房,我们注定有缘无分'''输出结果2'''你的户口在哪?广州吗:广州户口有广州户口,可以看房了广州公积金缴存时间:3公积金缴存2年以上,可以公积金贷款公积金买房成功,迎娶白富美'''输出结果3'''你的户口在哪?广州吗:广州户口有广州户口,可以看房了广州公积金缴存时间:1商业贷款月收入多少元:20000可以进行商业贷款买房迎娶白富美,走向人生巅峰'''输出结果4'''你的户口在哪?广州吗:广州户口有广州户口,可以看房了广州公积金缴存时间:1商业贷款月收入多少元:12000太穷,给不了她幸福,只能祝她幸福了'''
这就是嵌套
- 满足某个条件后继续往下走,后面还有其他的条件判断。
 - 还是注意缩进表示分支,同一层分支的,缩进格数一定要相同
 
祝天下有情人终成眷属
