一、if语句
1.1、If选择语句
-
Python中的所有对象都支持比较操作
-
可用于测试相等性、相对大小等。如果是复合对象,Python会检查其所有部分包括自动遍历各级嵌套对象;,直到可以得出最终结果。
-
-
测试操作符
-
==:测试值的相等性。
-
表达式测试对象的一致性。
-
-
Python中不同类型的比较方法
- 数字:通过相对大小进行比较。
- 字符串:按照字典次序逐字符进行比较。
- 列表和元祖:自左至右比较各部分内容。
- 字典:对排序之后的(键值)列表进行比较。
- Python中真和假的含义
- 非零数字为真,否则为假。
- 非空对象为真,否则为假。
- none则始终为假。
-
三元运算符
-
三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断,在Python 2.4以上才有了三元操作。
-
# 如果条件为真,返回真 否则返回假 condition_is_true if condition else condition_is_false
代码如下:
>>> is_fat = True >>> state = "fat" if is_fat else "not fat" >>> state 'fat' >>> state = "fat" if not is_fat else "not fat" >>> state 'not fat'
它允许用简单的一行快速判断,而不是使用复杂的多行if
语句。 这在大多数时候非常有用,而且可以使代码简单可维护。
1.2、If语法结构
根据Python的缩进规则,如果if
语句判断是True
,就把缩进的两行print语句执行了,否则,什么也不做。一般有三种用法,分别是:单分支、双分支和多分支,对应语法如下:
# 单分支; if <expression>: <statement> # 双分支; if <expression>: <statement> else: <statement> # 多分支; if <expression>: <statement> elif <expression>: <statement> elif ...: <statement> else: <statement>
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else
1.3、If使用示例
比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if
语句实现:
age = 20 if age >= 18: print('your age is', age) print('adult')
也可以给if
添加一个else
语句,意思是,如果if
判断是False
,不要执行if
的内容,去把else
执行了:
age = 3 if age >= 18: print('your age is', age) print('adult') else: print('your age is', age) print('teenager')
当然上面的判断是很粗略的,完全可以用elif
做更细致的判断:
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
if
判断条件还可以简写,比如写:
x = 1 if x: print('True')
只要x
是非零数值、非空字符串、非空list等,就判断为True
,否则为False
。
1.4、If结合input或raw_input
最后看一个有问题的条件判断,会使用input或raw_input来读取用户的输入,这样可以自己输入,程序运行得更有意思。使用input或raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的。
-
纯数字输入
当输入为纯数字时,input返回的是数值类型,如int、float。raw_inpout返回的是字符串类型,string类型。
-
输入字符串为表达式
input会计算在字符串中的数字表达式,而raw_input不会。如输入 “57 + 3”,input会得到整数60,raw_input会得到字符串“57 + 3”。
测试input:
#!/usr/bin/python # -*- coding: utf-8 -*- # birth = input('birth: ') print type(birth) if birth < 2000: print('00前') else: print('00后')
测试raw_input:
# -*- coding: utf-8 -*- # birth = raw_input('birth: ') print type(birth) if birth < 2000: print('00前') else: print('00后')
这里可以把输入使用int()
函数转换一下,这是因为input()
返回的数据类型是str
,str
不能直接和整数比较,必须先把str
转换成整数就可以了。
二、while语法
Python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while <expression>: statement else: statement
在while循环中,执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。如果条件判断语句永远为true,循环将会无限的执行下去。
while语句时还有另外两个重要的命令continue,break来跳过循环。continue用于跳过该次循环,break则是用于退出循环,此外”判断条件”还可以是个常值,表示循环必定成立,具体用法如下:
在python中,while … else在循环条件为false时执行else语句块,其中else块可用可不用。如果用了,只有当循环正常终止,else才会执行;如果循环终止是由break跳出导致的则else不会执行。
三、for语法
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环的语法格式如下:
for <i> in <Object>: statement else: statement
一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素。Object可用于字符串、元祖、列表和其它的内置可迭代对象以及通过类所创建的新对象。
跟while … else一样,在循环条件为false时执行else语句块,其中else块可用可不用。如果用了,只有当循环正常终止,else才会执行;如果循环终止是由break跳出导致的则else不会执行。
四、循环控制语句
4.1、break
通常情况下的循环要么执行出错,要么死循环,要么就只能老老实实等它把所有的元素循环一遍才能退出。如果想在循环过程中退出循环,怎么办?用break语句!
break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。
var = 10 while var > 0: print ('当期变量值为 :', var) var -= 1 if var == 5: break
4.2、continue
与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。
var = 10 while var > 0: var -= 1 if var == 5: # 变量为 5 时跳过输出 continue print ('当前变量值 :', var)
4.3、pass
空语句是为了保持程序结构的完整性,有些逻辑中可能并不需要执行什么动作,但是如果什么都不写,程序会报错。这个时候就可以使用pass语句了。
这通常用于创建最小结构的类:
class MyEmptyClass: pass