学习Python之if语句

if语句

在我们平时的生活中,在选购一样商品时,我们会考虑很多的因素条件,比如自己的需求,价钱,质量,口碑等等,这些判断条件符合的差不多才会去考虑商品是否真的值得收入囊中。python呢,就像C语言一样也提供了判断语句—if语句。
if语句能够检查程序的当前状态,并据此采取相应的措施。

1. 我们先来一个简单的示例来体验一下

cars.py
cars = ['audi','bmw','subaru','toyota']

for car in cars:
	if car == 'bmw':   #检查汽车名是否是“bmw”
		print(car.upper())  #如果是就大写输出
	else:
		print(car.title())  #如果不是就之大写首字母

看看执行结果吧:

book@www.100ask.org:~/python/L5$ python cars.py
Audi
BMW
Subaru
Toyota

这个例子挺简单的,结合了前面的列表,for循环和函数,接下来我们就分模块来聊一聊。
2. 接下来看看条件测试:
每一条if语句的核心都是一个值为TRUE(一般为1)或FALSE(一般为0)的表达式,这种表达式被称为条件测试。Python根据条件测试的值为true或是false来决定是否执行if语句中的代码。相信有其他语言基础的,都了解这个含义。如果是true就执行if语句中的代码,反之就忽略if语句后面的代码。
1)检查是否相等
大多数条件测试都是将一个变量的当前值同特定的值进行比较。最简单的条件测试检查变量的值是否与特定值相等:
(在命令行输入python就会进入下面的模式)

>>> car = 'bmw'
>>> car == 'bmw'
True

>>> car = 'bmw'
>>> car == 'bwm'
False

第一条语句就是赋值到car变量中,然后呢使用两个等于号来进行判断,如果等号两边相等就返回true,否则为false。
一个等号是陈述句;表示什么是什么。
两个等号是问句;表示什么是什么吗?
3.检查是否相等时不考虑大小写
在python中检查是否相等时是区分大小写的,例如,两个大小写不相同的值会被视为不相等:

>>> car = 'Audi'
>>> car == 'audi'
False

如果大小写很重要,这种行为是有其优点的。但要是大小写无关紧要,仅仅是想检查变量的值,不妨将变量的值全部转换为小写,在进行比较:

>>> car = 'Audi'
>>> car.lower() == 'audi'
True

无论值‘Audi’的大小写如何,通过上面的测试方式结果都是true。函数lower()也不会修改存储在变量car中的值,因此进行这样 的比较时不会影响原来的值:

>>> car = 'Audi'
>>> car.lower() == 'audi'
True
>>> car
'Audi'

网站采用类似的方式让用户输入的数据符合特定的格式。例如,网站可能使用类似的测试来确保用户名的独一无二,而并非只是与另一个用户名的大小写不同。用户提交新的用户名时,将把它转换为小写,并与所有已存在的用户名的小写版本进行比较。执行这种检查时,如果已经有用户名“aaron”(不管存储的大小写如何),如果想要再次注册用户名“Aaron”是不可以的。
4.检查是否不相等
要判断两个值是否不等,可结合感叹号和等号(!=),其中呢,感叹号在这里翻译成中文是不,在C语言中一样一样滴…
下面来个具体的例子来体会一下:

  1 requested_topping = 'mushrooms'
  2 
  3 if requested_topping != 'anchovies':
  4         print("Hold the anchovies!")

看看结果:

book@www.100ask.org:~/python/L6$ python toppings.py 
Hold the anchovies!

在Codeing的时候检查两个值是否不等的效率可能更高一些。
5.比较数字
python中检查数字就不叫简单了,比如:

>>> age = 18
>>> age == 18
True
>>> age == 19
False

如果是检查两个数字是否不等,如:

  1 answer = 17
  2 
  3 if answer != 42:
  4         print("That is not the correct answer.Please try again!")

看看执行结果:

book@www.100ask.org:~/python/L6$ python magic_number.py 
That is not the correct answer.Please try again!

因为answer和42不相等,所以if判断为true,然后就执行if后面缩进的代码。
条件语句中可以包含各种数学比较,如小于<,小于等于 <=,大于>,大于等于>=:

>>> age=19
>>> age < 21
True
>>> age <= 21
True
>>> age == 21
False
>>> age > 21
False
>>> age >= 21
False

6.检查多个条件
在coding的时候,我们会免不了需要检查多个条件,需要多个条件同时满足的时候才去执行相应的操作,python中呢,提供and和or两个关键字来满足coding的需求。
1> 使用and检查多个条件
and的关键字的判断原理是,and两边的判断条件同时满足结果才会为true,才会执行后面缩进的语句,就相当与C语言中的与(&&)例如:

>>> age_0 = 22
>>> age_1 = 10
>>> age_0 >= 21 and age_1 >= 21
False
>>> age_1 = 30
>>> age_0 >= 21 and age_1 >= 21
True

当然,我们在coding的时候,为了让我们的code读起来,意思表达的非常明显,我们可以在and两边的判断语句使用括号括起来,如:

>>> (age_0 >= 21) and (age_1 >= 21)

2> 使用or检查多个条件
or关键字的判断原理时,当判断条件中,有一个条件满足结果就为true,就会执行后面的缩进语句,这里就相当于C语言中的或(||)如:

>>> age_0 = 22
>>> age_1 = 10
>>> (age_0 >= 21) or (age_1 >= 21)
True

细细体会一下上面的简单例子吧。
7.检查特定值是否包含在列表中
有时候,执行操作前必须检查列表是否包含特定的值。例如,结束用户的注册过程之前,可能需要检查他提供的用户名是否已包含在用户名列表中。在地图程序中,可能需要检查用户提交的位置是否包含在以知的位置列表中。
要判断特定的值是否已经包含在列表中,可使用关键字in。比如可以为披萨店编写一些实用的代码,首先创建一个列表,列表中包含用户点的披萨配料,然后检查特定的配料是否包含在该列列表中。

>>> requested_toppings = ['mushrooms','onions','pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False

关键字in 让python检查列表requested_toppings是否包含‘mushrooms’和‘pepperoni’。该用法挺有用的,它让你能够在创建一个列表后,轻松地检查其中是否包含特定的值。
8.检查特定值是否不包含在列表中
有了确定值是否包含在列表中,当然也有检查确定值是否不包含在列表中的关键字,python提供了关键字not in。例如,在一个列表中,其中包含被禁止在论坛上发表评论的用户,就可以在允许用户提交评论前检查他是否被禁言:

banned_users.py
--------------------------------------------
banned_users = ['andrew','carolina','david']
user = 'marie'

if user not in banned_users:
	print(user.title() + ", you can post a response if you wish. ")

执行结果呢:

book@www.100ask.org:~/python/L7$ python banned_users.py
Marie, you can post a response if you wish.

9.布尔表达式
布尔表达式,不过是条件测试的别名,与条件表达式一样,布尔表达式的结果要么为true,要么为false。
布尔值通常用于记录条件,如游戏是否正在运行,或用户是否可以编辑网站的特定内容,
例如下面的赋值:

game_active = True
can_edit = False

在跟踪程序状态中重要的条件方面,布尔值提供了一种高效的方式。
做些简单练习:

#检查两个字符串相等和不等
>>> car = 'hello'
>>> name = 'world'
>>> car == name
False
>>> car != name
True
#使用函数lower()的测试
>>> name1 = 'aaron'
>>> name2 = 'Aaron'
>>> name1 == name2
False
>>> name1 == name2.lower()
True
#检查两个数字相等,不等,大于,小于,大于等于和小于等于
>>> num1 = 10
>>> num2 = 23
>>> num1 == num2
False
>>> num1 != num2
True
>>> num1 > num2
False
>>> num1 < num2
True
>>> num1 >= num2
False
>>> num1 <= num2
True
#使用关键字and和or的测试
>>> num1 = 10
>>> num2 = 20
>>> num1 == 10 and num2 == 20
True
>>> num1 == 20 and num2 == 20
False
>>> num1 == 20 or num2 == 20
True
>>> num1 == 10 or num2 == 20
True
>>> if num1 == 10 or num2 == 20:
...        print("hello world")
...
hello world
#测试特定的值是否包含在列表中
>>> machines = ['HP','RICOH','SAMSUNG','XEROX']
>>> 'BENTU' in machines
False
>>> 'HP' in machines
True
#测试特定的值是否未包含在列表中
>>> machines = ['HP','RICOH','SAMSUNG','XEROX']
>>> 'BENTU' not in machines
True
>>> 'HP' not in machines
False
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值