目录:导读

  • 一、Python控制流语句
  • 二、Python分支语句(if)
  • 三、Python循环语句(while与for)
  • While循环
  • for循环
  • range()语法
  • break语句
  • continue语句
  • else语句
  • pass语句
  • for 循环嵌套
  • while 循环嵌套
  • 用for循环实现冒泡排序(升序)


一、Python控制流语句

程序设计中的控制语句有3种,即顺序、分支和循环语句

顺序结构:
     语句的执行顺序是按照程序语句书写的顺序,从上到下依次执行

选择结构:
     是指下一步执行语句有多个选择分支,程序执行流程根据当前的状态,选择其中
一个分支执行

循环结构:
     是指如果满足一定条件,则反复执行一段程序,直到条件不满足为止
 

二、Python分支语句(if)

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块

Python程序语言指定任何 非0 和 非空( none )、True值为逻辑真,0 或者 none、False为逻辑假

Python 编程中 if 语句用于控制程序的执行(如下图)

python控制arcgis python控制流语句_python


基本形式为:

if 判断条件:
	执行语句……
else:
	执行语句……

其中 “判断条件” 成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围,else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句

if 语句的判断条件可以用: >(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系

当判断条件为多个值时,可以使用下面的形式:

if 判断条件1:
	执行语句1……
elif 判断条件2:
	执行语句2……
elif 判断条件3:
	执行语句3……
else:
	执行语句4……

python控制arcgis python控制流语句_后端_02


由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现

如果判断需要多个条件需同时判断时
1.可以使用 or (或),表示两个条件有一个成立时判断条件成功
2.使用 and (与),表示只有两个条件同时成立的情况下,判断条件才成功
 

三、Python循环语句(while与for)

循环语句允许我们执行一个语句或语句组多次,下图是在大多数编程语言中的循环语句的一般形式

python控制arcgis python控制流语句_python控制arcgis_03


Python提供了while循环和for循环(在Python中没有do…while循环)

while 循环:给定的判断条件为 true 时执行循环体,否则退出循环体

for 循环:可以遍历任何序列的项目,如一个列表或者一个字符串

While循环
while 判断条件:
	执行语句……
[else:
执行语句……]

    执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非零、或非空( null )的值均为true。当判断条件假false时,循环结束。else 中的语句会在循环正常执行完

例如:

a=10
count = 0
while a>0:
count=count+a
a=a-1
else:
	print(count)
for循环
for 迭代变量 in 可迭代对象:
	执行语句...
[else :
执行语句...]

    每次循环,迭代变量被设置为可迭代对象 (序列, 迭代器, 或者是其他支持迭代的对象) 的当前元素, 提供执行语句块使用,直到可迭代对象遍历完成终止

例如:

for letter in 'abcdef':
	print('当前字母 :', letter)
	
fruits = ['aaa', 'bbb', 'ccc']
for fruit in fruits:
	print('当前字母 :', fruit)

range()函数
如果需要遍历数字序列,可以使用内置range()函数,它会生成数列

range()语法

range(start, end, step=1):顾头不顾尾

range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8,9]

range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3,
4, 5, 6, 7, 8, 9]

range(1,10,2):指定start=1,end=10,step=2,生成可迭代对象,包含[1, 3, 5, 7,
9]

通过序列索引迭代:

fruits = ['aaa', 'bbb', 'ccc']
for index in range(len(fruits)):
	print('当前字母 :', fruits[index])
break语句

    用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句,break语句用在while和for循环中

如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码

continue语句

    用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环,continue语句用在while和for循环中

else语句

    在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样

pass语句

    是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句

例1:求100以内偶数之和

i = 0
sum = 0
while i < 100:
i = i+1
if i % 2 != 0:
	continue
	sum += i
else:
	print(sum)

例2:求质数

for num in range(10,20): # 迭代 10 到 20 之间的数字
	for i in range(2,num): # 根据因子迭代
		if num%i == 0: # 确定第一个因子
			j=num/i # 计算第二个因子
			print('%d 等于 %d * %d' % (num,i,j));
			break; # 跳出当前循环
		else: # 循环的 else 部分
			print(num, '是一个质数')

Python 循环嵌套:Python 语言允许在一个循环体里面嵌入另一个循环

for 循环嵌套
for iterating_var in sequence:
	for iterating_var in sequence:
		statements(s)
	statements(s)
while 循环嵌套
while expression:
	while expression:
		statement(s)
	statement(s)

也可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环,反之,你可以在for循环中嵌入while循环

用for循环实现冒泡排序(升序)

方法一:

array = [3,2,1];
for i in range(len(array) - 1, 0, -1):
	for j in range(0, i):
		if array[j] > array[j + 1]:
			array[j], array[j + 1] = array[j + 1], array[j]
print(array)

方法二:

arr=[3,8,7,4,3,0,21,33,45,67];
for i in range(1,len(arr)):
	for j in range(0,len(arr)-i):
		if arr[j]>arr[j+1]:
			arr[j],arr[j+1]=arr[j+1],arr[j];
print(arr);