python中的条件分支和循环控制语句

条件分支

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章