若要学习if判断语句,首先要知道什么时运算符,因为if语句是判断语句,后面要跟判断条件
运算符分为:算数运算符,赋值运算符,比较运算符,逻辑运算符和成员运算符,位运算符,身份运算符,以下对各种运算符进行一一讲解
运算符的优先级为:算数运算符>位运算符>身份运算符>成员运算符>逻辑运算符>赋值运算符
算数运算符分为加、减、乘、除、模、整除,幂
例如以下代码
a = 3
b = 2
s='''加{0}:减{1}:乘{2}:
除{3}:整除{4}:模{5}:幂{6}:'''.format(
a+b,a-b,a*b,a/b,a//b,a%b,a**b)
print(s)
print("===================")
a = 2
b = 3
s='''加{0}:减{1}:乘{2}:
除{3}:整除{4}:模{5}:幂{6}:'''.format(
a+b,a-b,a*b,a/b,a//b,a%b,a**b)
赋值运算符分为等于(=),加等于(+=),减等于(-=)
例如以下代码:
a=5
b=5
a+=10 #a=a+10
b-=4 #b=b-4
print("加等于的结果是{},减等于的结果是{}".format(a,b))
比较运算符分为 > (大于)、<(小于)、 >=(大于等于) 、<=(小于等于)、 !=(不等于)、 ==(恒等于),其运算结果为:布尔值(True 和 False)
例如:以下代码,注意:“=”与“ ==
”不是一个意思,一个在于赋值(=)每一个在于判断(==
)
a=5
b=10
print("a是否恒等于b?答:{}".format(a==b))
print("a是否恒小于等于b?答:{}".format(a<=b))
print("a是否恒大于等于b?答:{}".format(a>=b))
print("a是否恒不等于b?答:{}".format(a!=b))
print("a是否恒小于b?答:{}".format(ab))
逻辑运算符有:或(or)、与(and)、非(not),其运算结果为布尔值(true和false),注意:真真为真(and),假假为假(or)。非一般与成员运算符(in)来结合使用
代码示例如下:
a=5
b=-6
print(a>0 and b>0)
print(a>0 and b<0)
print(a>0 or b>0)
print(a>0 or b<0)
总结起来就两句话:
成员运算符有:in/not in 元素范围,在/不在范围内,其返回值也是布尔类型
其示例代码如下:
item_str = 'python'
item_list = [1,3,'python',[2.34,5,7],{"name":"yezi","class":"0017"}]
item_dict = {"sex":"gril","code":"200","url":"www.baidu.com"}
print("th 在字符串中吗?","th" in item_str ,"ll在字符串中吗?", 'll' not in item_str)
print("3 在列表中吗?",3 in item_list ," 2.34 在嵌套列表中吗?", 34 not in item_list[3]," yezi 是嵌套字典的值吗?", "yezi" not in item_list[4].values())
print("sex 是嵌套字典的键吗?","sex" in item_dict ,"200 是字典的值吗?", "200" in item_dict)
& 位与
| 位或
~ 取反
^ 异或
<< 向左的位移
>> 向右的位移
问: is和==
有什么区别
答:is需要判断内存地址,==
只是判断两边数值的大小
例如:以下代码 :
count = 100
if count > 100 or count == 100: # 比较运算符 逻辑运算符
print( "count 大于等于100" )
sun_str = "sun"
if "s" in sun_str: #成员运算符
print( " s 在字符串里面 " )
注意:所有为空的数据,为0的数据放在if后面,就会判断为False,所有非空的数据/非0的数据放在if后面就会自动的判断为True
i = []
j = 'python'
if i:
print("True")
else:
print("False")
if j:
print("True")
else:
print("False")
如果存在多个判断,可使用if——elif——else来编写程序。
1.如果一个条件解决不了,可以存在多个elif。elif后面和if一样,必须加条件;
2. else后面不能加任何条件,只能跟冒号
3. 每个if语句中,else可以不存在,但是如果else存在的话,else只能有一个
item_list = [2.5,7,10,'python']
if 15 in item_list:
print("True")
elif 'p' in item_list[3]:
print("p在python中")
else:
print("false")
例题1:一家商场正在降价促销,如果购买50-100原(包含50元和100元)之间,会给10%的折扣,如果购买金额大于100元会给20%的折扣,编写一个程序,询问购买价格,在现实折扣(10%或者20%)和最终价格。
#答案如下:
money = int(input("请输入购买价格:"))#使用input获取数据,因为从控制台获取为字符串,所以强制转换int型
if 50<= money <=100:
print("您所需要付款的金额是:{},您享受的折扣是10%".format(money*(1-0.1)))
elif money >100:
print("您所需要付款的金额是:{},您享受的折扣是20%".format(money*(1-0.2)))
else:
print("您所需要付款的金额是:{},您不能享受折扣".format(money))
例题2:有一个字典: {“广东”:[“深圳”,“广州”,“阳江”], “湖南”:[“长沙”,“益阳”,“怀化”], “湖北”:[“武汉”,“襄阳”,“黄冈”]},若你从控制台输入一个省份,根据你的省份判断 你可以选择哪些城市。 当你选择完毕后,就打印一个信息到控制台,告诉你,你选择了XX省份XX城市 。如果省份不存在 或者是城市不存在 那么就告诉你 你输入错误 终止程序
#答案如下:
city_dict = {"广东":["深圳","广州","阳江"], "湖南":["长沙","益阳","怀化"], "湖北":["武汉","襄阳","黄冈"]} #字典赋值
shengfen = input("请输入一个省份:") #input函数,从控制台获取输入的省份信息,赋值给变量
if shengfen in city_dict.keys(): #判断省份是字典的key
city_list = city_dict[shengfen] #如果是,输入字典的值,列表
city = input("请输入一个城市") #input函数,从控制台获取输入的城市信息,赋值给变量
if city in city_list: #判断省份是列表的值
print("您选择的是{}省{}市".format(shengfen,city)) #如果是,输出省份和城市信息
else: #如果不是,输出程序结束
print("您输入错误,终止程序")
else:#如果省份不是字典的key输出程序结束
print("您输入错误,终止程序")
思路:
第一步:因为要从输入城市,所以使用input函数,获取信息后复制给变量
第二步:判断省份在字典的key中是否存在,如果存在,使用input函数获取城市,如果不存在,给出省份不存在的提示信息
第三步:判断城市在字典的所选省份的value(注意value为列表)中是否存在,如果存在,输出选择的是哪个省,哪个市,如果不存在给出城市不存在的提示信息
条件为真的执行语句 if 真 else 条件为假的执行语句
data_1 = int(input("请输入一个数:"))
data_2 = int(input("请输入第二个数:"))
if data_1 >data_2:
print(data_2,data_1)
else:
print(data_1,data_2)
等同于:
data_1 = int(input("请输入一个数:"))
data_2 = int(input("请输入第二个数:"))
print(data_2,data_1) if data_1 >data_2 else print(data_1,data_2)