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这个代码块的就不执行了。
不满足,代码就往下走,这块代码不执行,直接执行else
else:
否则,即不满足上面的条件,执行这里的代码。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 = 8000
if Salary/2 >= Monthly_Supply:
print('可以进行商业贷款买房')
print('迎娶白富美,走向人生巅峰')
else:
print('太穷,给不了她幸福,只能祝她幸福了')
else:
print('没有户口,买不了房,我们注定有缘无分')
逻辑如上图
输出结果1
'''
你的户口在哪?广州吗:北京户口
没有广州户口,买不了房,我们注定有缘无分
'''
输出结果2
'''
你的户口在哪?广州吗:广州户口
有广州户口,可以看房了
广州公积金缴存时间:3
公积金缴存2年以上,可以公积金贷款
公积金买房成功,迎娶白富美
'''
输出结果3
'''
你的户口在哪?广州吗:广州户口
有广州户口,可以看房了
广州公积金缴存时间:1
商业贷款
月收入多少元:20000
可以进行商业贷款买房
迎娶白富美,走向人生巅峰
'''
输出结果4
'''
你的户口在哪?广州吗:广州户口
有广州户口,可以看房了
广州公积金缴存时间:1
商业贷款
月收入多少元:12000
太穷,给不了她幸福,只能祝她幸福了
'''
这就是嵌套
- 满足某个条件后继续往下走,后面还有其他的条件判断。
- 还是注意缩进表示分支,同一层分支的,缩进格数一定要相同
祝天下有情人终成眷属