条件分支
if 语句
Python中if语句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
- 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 3、在Python中没有switch – case语句。
以下为if中常用的操作运算符:
操作符 | 描述 |
---|---|
< |
小于 |
<= |
小于或等于 |
> |
大于 |
>= |
大于或等于 |
== |
等于,比较两个值是否相等 |
!= |
不等于 |
age = int(input('请输入你家狗的年龄:'))
if age <= 0:
print('你是在逗我吧!')
elif age == 1:
print('相当于14岁的人!')
elif age == 2:
print('相当于22岁的人!')
else:
human = 22 + (age - 2)* 5
print('对应人类年龄:', human)
if 嵌套
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
num = int(input('请输入一个数字: '))
if num % 2 == 0:
if num % 3 == 0:
print('输入的数字可以同时被2和3整除!')
else:
print('输入的数字只能被2整除!')
else:
if num %3 == 0:
print('输入的数字只能被3整除!')
else:
print('输入的数字不能被2和3整除!')
循环控制
Python 中的循环语句有 for 和 while。
while 循环
Python 中 while 语句的一般形式:
while 判断条件(condition):
执行语句(statements)……
同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环。
以下实例使用了 while 来计算 1 到 100 的总和:
>>> sum = 0
>>> counter = 1
>>> while counter <= 100:
sum = sum + counter
counter = counter + 1
>>> sum
5050
无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:
while var == 1 : # 表达式永远为 true
num = int(input("输入一个数字 :"))
print ("你输入的数字是: ", num)
你可以使用 CTRL+C 来退出当前的无限循环。无限循环在服务器上客户端的实时请求非常有用。
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块。
语法格式如下:
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
num = int(input ('请输入一个正整数:'))
sum1 = 0
counter = 1
while counter <= num:
sum1 = sum1 + counter
counter = counter + 1
else:
print('1+....+%d的和为:%d' %(num, sum1))
for 语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串,也可以是一个文件
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
>>> for i in range(5, 10):
print(i)
5
6
7
8
9
>>> a = ['taobao', '亚马逊', '京东', 'pdd', '当当']
>>> a = ['taobao', '亚马逊', '京东', 'pdd', '当当']
>>> for i in a:
print(i)
taobao
亚马逊
京东
pdd
当当
break 和 continue 语句
break和continue的作用于其他语言相同,分别是终止循环和跳出本次循环
>>> a = ['taobao', '亚马逊', '京东', 'pdd', '当当']
>>> for i in a:
if i == 'pdd':
continue
print(i)
taobao
亚马逊
京东
当当
>>> for i in a:
if i == 'pdd':
break
print(i)
taobao
亚马逊
京东
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。
#寻找一定范围内的素数
for n in range (5, 13):
for x in range (2, n):
if n % x == 0:
print(str(n) +'等于'+ str(x) +'*' + str(n // x))
break #跳出内层循环
else:
print(str(n) +'是素数')
pass 语句
Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句,如下实例:
for cet in 'runoob':
if cet == 'o':
pass
print('执行pass块')
print('当前字母:', cet)
if a>1:
pass #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误;pass只是为了防止语法错误
笔记
if None:
print(“Hello”)
以上代码输出的结果是:没有任何输出!
与C不同,在python中是没有NULL,但存在相近意义的None。None表示空值,它是一个特殊 Python 对象, None的类型是NoneType
None在 Python 解释器启动时自动创建, 解释器退出时销毁。
在一个解释器进程中只有一个 None 存在, 因为不可能有其他对象会使用 None 已占用的内存(它就是占了个坑)
所以只有: None is None and None == None
- None不支持任何运算也没有任何内建方法
- None和任何其他的数据类型比较永远返回False
- None有自己的数据类型NoneType,不能创建其他NoneType对象(它只有一个值None)
- None与0、空列表、空字符串不一样
>>> None == 0
False
>>> None == ' '
False
>>> None == None
True
>>> None == False
False
- 可以将None赋值给任何变量,也可以给None值变量赋值
- None是没有像len,size等属性的,要判断一个变量是否为None,直接使用
>>> a = None
>>> a == None
True
结合is和== 说明None和空列表、空字符串的区别
用指针来说
is: 指向同一内存地址
==: 指向的内存地址中的内容是相同的
a = list()
b = []
print a == b # True
print a is b # False
c = "abc"
d = "abc"
print c == d # True 字符串池
print c is d # True
此时为 list() 和 [] 相当于各自分配了一次内存,所以 a is not b,但是 各自分配的内存中的内容是一样的,故而 a == b。
c 和 d 指向同一个内存地址(字符串池、引用计数机等机制)所以 c is d,c 和 d 指向的内存中存的内容也是相同的("abc"),所以 c == d。
而 None,可以认为是内存中不同于其他的一块内存空间,a b c d 都有各自的指向,所以不是指向 None,故而 a b c d is not None,且None是唯一的,自然 a b c d != None