我是靠谱客的博主 义气高跟鞋,最近开发中收集的这篇文章主要介绍【Python】流程控制语句:if-elif-else条件语句、while循环、for循环、break和continue、pass语句、end关键字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python流程控制语句

2021/6/8 周二
学习内容: if-elif-else条件语句、while循环、for循环、break和continue、pass语句、end关键字

刚接触Python,主要是看 菜鸟教程、w3school 网站,以及电子工业出版社出版的Python编程入门指南上册的教材,并根据自己的情况对重点内容做的笔记。

如有错误,欢迎在评论区指出,非常感谢!


Python里流程控制语句的写法与Java很不同:

  1. 没有{ }花括号,而是用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块;
  2. 条件不需要用 () 小括号括起来;
  3. 每个条件后面要使用 : 冒号,表示接下来是满足条件后要执行的语句块。

一、if条件控制语句

在Python中只有 if 语句,没有像Java一样的 switch…case 语句。

1. 完整语法
if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
elif condition_3:
    statement_block_3
···
else:
    statement_block_4

elif 就相当于Java中的 else if,可以有多个。

不需要的情况下,elif 和 else 可以都省略,或者省略其中一个。

condition 条件可以由多个条件组合而成,比如用逻辑运算符 and 或 or 连接两个条件:

a,b = 5,10
c = 8
if c>=a and c<=b:
    print("in")
elif c<a or c>b:
    print("out")
2. 简写

如果只有一条语句要执行,则可以将其与 if 语句放在同一行:

a = 1
if a>0: print(a)

简写的语法冒号后面有无空格都可以。

如果有 if 和 else 两个条件,也可以放在同一行写:

a = -1
if a>0:
  b = a
else:
  b = -a
print(b)

>>> 将中间4行简写:
b = a if a>0 else -a

这种写法需要注意,if 的语序变换了,而且去掉了条件后面的冒号

另外,这样简写的一行是一个条件表达式,是有返回值的,可以直接赋值给b,比上面的写法简洁很多。

如果有多个条件,同样可以简写到一行并且拥有返回值:

s = 88
if s<60:
    str = "D"
elif s<70:
    str = "C"
elif s<90:
    str = "B"
elif s<100:
    str = "A"
print(str)

>>> 将条件语句简写:
str = "D" if s<60 else "C" if s<70 else "B" if s<90 else "A"

这里需要注意的是:

  1. 最后一条语句不能带条件,否则会报无效语句错误(相当于是简写只能用if-elif-···-else的逻辑,不能是if-elif-···)
  2. 但是又没有用到 elif 关键字,而是相当于拆成else if来写(否则既要写条件又要写执行语句,elif一个关键字带不了)
3. 嵌套

与Java一样,语句也可以嵌套,可以在 if 语句中包含 if 语句:

s = 88
if s>=60:
  if s<70: str = "C"
  elif s<90: str = "B"
  else: str = "A"
else:
  str = "D"
print(str)
4. pass 语句

if 执行的语句不能为空,否则会报错【IndentationError: expected an indented block】

但是如果碰到某个条件确实不用执行什么内容,可以使用 pass 语句来避免错误:

a,b = 1,2
if a != b:
  pass

在循环语句中也可以使用pass。

二、while循环

while循环是只要条件满足就会一直重复的循环,因此被称为条件循环

另外,在Python中只有 while 循环,没有像Java一样的 do…while 循环。

1. 一般形式
while condition:
    statements

只要condition条件为真,就可以执行statements语句。

如果condition一直为真,就会是无限循环。

2. break和continue

类似Java的循环语句,Python种也有break和continue语句

只要碰到了break语句,就可以立即停止循环

break可以与无限循环搭配使用,当循环到自己需要的内容时停止循环:

a = 1
while a>0:
  if a == 100:
    print(a)
    break
  a += 1

continue则是表示,立即停止当次循环并进入到下一次循环,continue后面所有属于这次循环的内容被跳过。

例如输出1-9的奇数:

a = 0
while a<10:
  a += 1
  if a%2 == 0:
    continue
  print(a)

当a除以2余数为0时,直接跳过print()方法进入下一次循环了。

3. else语句

while循环也可以使用else语句,当条件不再成立时,会执行一次else里的代码块

a = 0
while a<10:
  a += 1
  if a%2 == 0:
    continue
  print(a)
else:
  print("The end.")

else语句也是属于 while 循环语句的,如果是使用break跳出循环了,不会再执行else

所以else语句可以用来区别一个循环是全部计数完停止的,还是被break停止的。

三、for循环

Python中的 for 循环用于遍历序列(即列表,元组,字典,集合或字符串)。

这与Java的 for 循环不太相似,更像for-each循环。

因为for循环一般是已知次数的(也就是遍历对象的长度),所以又被成为计次循环

1. 一般形式
for variable in sequence:
    statements
else:
    statements

其中variable是迭代变量,sequence为要遍历的对象,statements为被重复执行的语句。

for循环也有else语句可以指定循环结束时执行的代码块,不需要也可以省略。

以及和while循环一样,for也有break和continue语句,用法一样。

之前说过Set集合无法访问某个元素,但可以使用 for 循环来遍历到每个元素:

myset = {1,2,3,4,5}
for x in myset:
  if x%2 == 0:
      print(x)

>>> 输出:
>>> 2
>>> 4

如果是字典的话,则还需要用到 items() 函数:

mydict = {"A":"Apple","B":"Ball","C":"Car"}
for k,v in mydict.items():
  print(k+" for "+v)

>>> 输出:
>>> A for Apple
>>> B for Ball
>>> C for Car
2. end 关键字

关键字end可以用于将结果输出到同一行,还可以在输出的末尾添加不同的字符,实例如下:

a, b = 0, 1
while b < 1000:
    print(b, end=', ')
    a, b = b, a+b

>>> 输出(斐波那契数列):
>>> 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

这样比每循环一次输出一行要美观很多。

end关键字不只在循环中适用

3. range() 函数

range() 是Python的内置函数,返回一个数字序列,多用于for循环语句中循环一组代码指定的次数。

range()默认情况下0开始,默认递增1,并以指定的数字结束

for x in range(10):
  print(x, end = " ")

>>> 输出:
>>> 0 1 2 3 4 5 6 7 8 9 

range(10) 指0到9,不包括10。

也可以指定起始值

for x in range(3, 10):
  print(x, end = " ")

>>> 输出:
>>> 3 4 5 6 7 8 9 

如果不想默认递增1,也可以通过添加第三个参数(步长)来指定增量值

for x in range(3, 31, 3):
  print(x, end = " ")

>>> 输出:
>>> 3 6 9 12 15 18 21 24 27 30 

如果步长为负,则为递减。

4. 循环嵌套

for循环和while循环也都可以嵌套使用

for x in range(6, 0, -1):
  print(str(x)+"楼", end = " ")
  i = 0
  while i<7:
    i += 1
    if i==4:
      continue
    print(str(x)+"0"+str(i), end = " ")
  print("")

>>> 输出:
>>> 6601 602 603 605 606 607 
>>> 5501 502 503 505 506 507 
>>> 4401 402 403 405 406 407 
>>> 3301 302 303 305 306 307 
>>> 2201 202 203 205 206 207 
>>> 1101 102 103 105 106 107 

最后

以上就是义气高跟鞋为你收集整理的【Python】流程控制语句:if-elif-else条件语句、while循环、for循环、break和continue、pass语句、end关键字的全部内容,希望文章能够帮你解决【Python】流程控制语句:if-elif-else条件语句、while循环、for循环、break和continue、pass语句、end关键字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部