您的位置:时时app平台注册网站 > 编程知识 > Python中的条件判断语句与循环语句用法小结,p

Python中的条件判断语句与循环语句用法小结,p

2019-11-21 02:22

  上学期间,常常遇到这样的情景:为了惩罚学生,老师会说:“XXX,你先去操场上跑10圈再回来继续反省。”

Python中的条件判断语句与循环语句用法小结,python小结

if语句

>>通用格式
if语句一般形式如下:

if <test1>:
 <statements1>
elif <test2>:
 <statements2>
else:
 <statements3>

另外需要注意的是,Python中是没有switch/case语句的

while循环

while语句是Python语言中最通用的迭代结构,简而言之,只要顶端测试一直计算到真值,就会重复执行一个语句块。

>>一般格式

while <test>:
 <statements1>
else:
 <statements2>
>>break,continue,pass和循环else

break

跳出最近所在的循环(跳过整个循环语句)。

continue

跳到最近所在循环的开头处(来到循环的首行)。

pass

什么事也不做,只是空占位符语句。

循环else块

只有当前循环正常离开时才会执行(也就是没有碰到break语句)

>>一般循环格式
加入break和continue语句后,while的一般格式变为:

while <test1>:
 <statements1>
 if <test2>:break
 if <test3>:continue
else:
 <statements2>
>>pass

pass语句是无运算的占位符,当语法需要语句并且还没有任何实用的语句可写时,就可以使用它。

>>循环else
在while语句中加入else和C/C 中的语法不太一样,这里详细说明一下。else后面的代码只有当循环正常结束时才会执行,如果是用break跳出循环的,这部分代码就不会运行,具体看一个求质数的例子:

x = y // 2
while x > 1:
 if y % x == 0:
  print(y,'has factor',x)
  break
 x -= 1
else:
 print(y,'is prime')

再看一个对比的例子,没有使用else的情况:

found=False
while x and not found:
 if (matchx[0]):
  print('Ni')
  found=True
 else:
  x=x[1:]
if not found:
 print('not found')
使用else后的情况:

while x:
 if (match(x[0])):
  print('Ni')
  break
else:
 print('not found')

for循环

for循环在Python中是一个通用的序列迭代器:可以遍历任何有序的序列对象内元素。for语句可以用于字符串、列表、元组、其他内置可迭代对象。

>>一般格式

for <target> in <object>:
 <statements>
else:
 <statements>

此处的else的作用和while语句中的一样。另外需要注意的是,当Python运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环体。

编写循环的技巧

内置range函数:返回一系列连续增加的整数,可作为for中的索引
内置zip函数:返回并行元素的元组的列表,可用于在for中遍历数个数列
>>循环计数器:while和range
range

当range函数只有一个参数时,会返回从零算起的整数列表,但其中不包括该参数的值。如果传进两个参数,那第一个参数是上边界,第二个参数是下边界。如果传进三个参数时,第三个参数表示步进值。

range提供了一种简单的方法,重复特定次数的动作:

for i in range(5):
 print(i,'Pythons')

相应的C 代码则是:

int i;
for(i = 0;i < 5;  i)
{
 std::cout<<i<<"Python";
}

>>并行遍历:zip和map
zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。

L1=[1,2,3,4]
L2=[5,6,7,8]
list(zip(L1,L2))

上述代码的执行结果是:

[(1,5),(2,6),(3,7),(4,8)]

当参数的长度不同时,zip会以最短序列的长度为准来截断所得到的元组。

使用zip构造字典:

keys=['spam','eggs','totast']
values=[1,2,5]
D = dict(zip(keys,values))

>>产生偏移和元素:enumerate
enumerate函数一个比较新的内置函数,它能同时返回元素值和偏移值:

s='spam'
for (offset,item) in enumerate(s):
 print(item,'appears at offset',offset)

  情形一:求和。求1 2 3的和,并输出结果。

您可能感兴趣的文章:

  • Python中的条件判断语句基础学习教程
  • Python中条件判断语句的简单使用方法
  • 详解Python中的条件判断语句
  • Python中的True,False条件判断实例分析
  • Python 条件判断的缩写方法
  • Python减少循环层次和缩进的技巧分析
  • python开发之for循环操作实例详解
  • Python循环语句之break与continue的用法
  • Python编程中的for循环语句学习教程
  • 在Python的while循环中使用else以及循环嵌套的用法

if语句 通用格式 if语句一般形式如下: if test1: statements1elif test2: statements2else: stateme...

for循环

  一般地,while循环已经可以应付大多数的循环案例。然而,还是有while循环够不着的地方。这时就需要for...in大显身手啦。

  比如要为一个集合的每个元素都执行一个代码块:

1 #集合
2 >>>L = ['I','can','Python','!']
3 >>>for i in L:
4 ...    print(i)
5 ...
6 I
7 can
8 Python
9 !

  对于求和公式,for...in循环比while循环更加简洁:

 1 #for...in循环比while循环简洁
 2 #求和公式
 3 #for...in循环
 4 >>>sum = 0
 5 >>>for i in range(11):
 6 ...    sum = sum   i
 7 ...
 8 >>>print(sum)
 9 55
10 #while循环
11 >>>sum = 0
12 >>>i = 0
13 >>>while i < 11:
14 ...    sum = sum   i
15 ...    i = i   1
16 ...
17 >>>print(sum)
18 55

  注:若可以使用for...in循环,就尽量不用while循环。

  对于循环中的break语句和continue语句,我不推荐大家使用。为什么呢?其一是容易出错;其二是可以通过改写循环条件或者修改循环逻辑来替代break语句和continue语句。

1 #哈哈,我就不用循环,看你咋的
2 >>>sum = 1   2   3
3 >>>print(sum)
4 6

  情形二:再是求和。求1 2 3 4 5 6 7 8 9 10的和,并输出结果。

1 #哈哈,我还不用循环,看你咋的
2 >>>sum = 1   2   3   4   5   6   7   8   9   10
3 >>>print(sum)
4 55

  情形三:还是求和。求1 2 3 …… 99 100的和,并输出结果。

while循环

  学习Python,使用笨方法可不行哦~~~

  就像上面的情形二,直接写求和表达式。

  为了避免上述情形二中笨重的代码,可以使用while循环:

1 #while循环
2 >>>sum = 0
3 >>>i = 0
4 >>>while i < 11:
5 ...    sum = sum   i
6 ...    i = i  1
7 ...
8 >>>print(sum)
9 55

  在while循环内部,i不断加一,直到i变为11时,不再满足(i<11)while条件,循环退出。

  while循环可以用来在任何条件为True的情况下重复执行一个代码块。

  因此,while循环:只要条件满足,就不断循环,条件不满足时退出循环。

  这话虽短,但含义深刻。不过这在当时,我是体会不到其中的“深意”的。直至大学,当接触到C 编程时,我才领悟到这其中的内涵。原来这句话中饱含编程哲学啊。什么哲学呢?围着操场跑道,重复跑10圈……这不就是“循环”嘛?

1 #range()方法
2 >>>list(range(3))
3 [0,1,2]
4 >>>list(range(1,6))
5 [1,2,3,4,5]

小结

  1. 为序列中的每一个元素执行一个语句块,或者在条件为真时继续执行一段语句;

  2. 可以使用continue语句和break语句,但不推荐使用;

  3. 死循环问题,Ctrl C直接退出程序;

  4. 循环:让计算机做重复任务的有效的方法。

  看来,循环不用不行啊。

 1 #哈哈,我就不用循环,看你咋的
 2 #我可以这样啊
 3  >>>sum = 1   2   3   ......   99   100
 4  Traceback (most recent call last):
 5    File "<stdin>", line 1, in <module>
 6 TypeError: unsupported operand type(s) for  : 'int' and 'ellipsis'
 7 #循环的魅力就在于此
 8 >>>sum = 0
 9 >>>for i in range(101):
10     sum = sum   i
11 >>>print(sum)
12 5050

  言归正传,for/while循环有什么作用呢?前面讲的Python基础知识中的代码就不需要循环啊。那下面来看几种情形呗~~~

  Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ

  range():生成一个整数序列。比如range(3)生成的序列是从0到2的整数:

死循环之吻

  对于死循环,我相信大家都印象深刻。有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。

  如何解决死循环问题呢?方法如下:

  一、Ctrl C直接退出程序或强制结束Python进程。

   对于出现编写Python程序代码时出现意想不到的问题而引起的死循环的情况,这种方法非常有效。

空代码块

  在Python中,空代码块是非法的。

  解决方法如下:

  二、pass语句:什么都不做。

   为了避免出现空代码块Error,方法就是在循环代码块中加入一个pass语句。

 1 #pass语句
 2 >>>for i in range(11):
 3 ...
 4 ...
 5   File "<stdin>", line 3
 6 
 7     ^
 8 IndentationError: expected an indented block
 9 #空代码块错误
10 >>>for i in range(11):
11 ...    pass
12 ...
13 >>>

本文由时时app平台注册网站发布于编程知识,转载请注明出处:Python中的条件判断语句与循环语句用法小结,p

关键词: