Python循环语句和函数怎么应用

本文小编为大家详细介绍“Python循环语句和函数怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python循环语句和函数怎么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

For 循环

循环允许多次运行一段代码。在 Python 中,循环的基本形式是for循环,它可以遍历可迭代对象。

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print(sum)
for item in 'Python': # String is iterable
  print(item) # prints all characters of the string

for item in [1,2,3,4,5]: # List is iterable
    print(item) # prints all numbers one at a time

for item in {1,2,3,4,5}: # Set is iterable
    print(item)

for item in (1,2,3,4,5): # Tuple is iterable
    print(item)

for ... in ....:属于固定套路。其实我们在前面的章节已经或多或少的介绍过for的用法,尤其是遍历一些数据类型的时候。

可迭代对象(iterable)

可迭代对象是可以迭代的数据集合。这意味着集合中的项目可以被一个一个地处理。列表、字符串、元组、集合和字典都是可迭代的对象。在可迭代对象上执行的操作是迭代,正在处理的当前项称为迭代器

player = {
  'firstname': 'Virat',
  'lastname': 'Kohli',
  'role': 'captain'
}

for item in player: # iterates over the keys of player
  print(item) # prints all keys

for item in player.keys(): 
  print(item) # prints all keys

for item in player.values():
  print(item) # prints all values

for item in player.items():
  print(item) # prints key and value as tuple

for key, value in player.items():
  print(key, value) # prints key and value using unpacking

范围(range)

range是Python中用于生成数字范围的可迭代对象。它通常用于循环和生成列表。range接受3个输入参数start、stop 和 step over,第2和第3可选。

for item in range(10):
  print('python') # prints python 10 times

for item in range(0,10,1):
    print('hello') # prints hello 10 times

for item in range(0, 10, 2):
    print('hii') # prints hii 5 times 

for item in range(10, 0, -1):
    print(item) # prints in reverse order

print(list(range(10))) # generates a list of 10 items

枚举(enumerate)

当循环时需要迭代器的索引时,enumerate非常有用。

for key, value in enumerate(range(10)): # using unpacking techique 
  print(f'key is {key} and value is {value}') # prints key and value at the same time

While循环

while循环语句的控制结构图如下所示:

Python循环语句和函数怎么应用  python 第1张

语法格式:

while 判断表达式:
    内部代码块

“while”翻译成中文就是“当...”的意思,while循环用伪代码描述就是“当条件满足的时候,就一直运行while所管理的代码块,当条件不满足的时候,就结束while循环。”

While 循环是根据特定条件多次运行代码块的另一种方法。在处理while循环时,我们需要小心一点,以免意外地创建一个无限循环,它会一直执行,直到系统崩溃!

hungry = True
while(hungry): # This is always true so it keeps printing until system crashes!
  print('Give me something to eat!!')

但尽管while 循环很酷。它们写得简单,读起来容易。我们只需要告诉解释器何时停止循环。这可以通过使用break语句来完成,该语句可以停止循环执行并中断循环。另一种方法是使条件变成False或者不成立,以停止执行。

hungry = True
while(hungry):
    print('Give me something to eat!!')
    break # prints only once and stops the loop execution
hungry = True
satisfaction = 0
while(satisfaction < 10):
  satisfaction += 1
  print('Give me something to eat!!') # prints 10 times

while循环的另一个特点是它可以与else块组合。

hungry = True
satisfaction = 0
while satisfaction < 10:
  satisfaction += 1
  print('Give me something to eat!!')
else:
    print('I am super satisfied now') # gets printed once condition is falsy

需要注意的是,如果在while块中使用了break语句,则不会执行else块。

While 与 For 循环

当知道需要循环的可迭代范围时,For循环通常很有用。然而,当我们想多次执行某个任务而事先不知道范围时,while循环就可以派上用场。

while True:
  response_from_user = input('Enter some message. Enter bye to exit')
  if(response_from_user == 'bye'):
    break

除了break语句之外,还有另外两个语句,continue它们不是跳出循环而是继续迭代。pass不经常使用,但有时用作占位符以在循环后继续执行语句。

除了break语句之外,还有另外两个语句,continue,它不是中断循环,跳出当前循环,而是继续迭代。pass不常用,但有时它被用作占位符,以便在循环后继续执行语句。

循环的嵌套

if判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。下面是一个嵌套for循环结合else子句的例子:

# 这是一个判断质数的程序
for n in range(2, 100):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')

break语句

通常情况下的循环要么执行出错,要么死循环,要么就只能老老实实等它把所有的元素循环一遍才能退出。如果想在循环过程中退出循环,怎么办?用break语句!

break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。

for letter in 'Hello world':     # 第一个实例
   if letter == 'd':
      break
   print ('当前字母为 :', letter)
--------------------------------------------  
var = 10                    # 第二个实例
while var > 0:              
   print ('当期变量值为 :', var)
   var -= 1
   if var == 5:
      break

continue语句

与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。

for letter in 'Hello world':     # 第一个实例
   if letter == 'o':        # 字母为 o 时跳过输出
      continue
   print ('当前字母 :', letter)
 -------------------------------------------------------
var = 10                    # 第二个实例
while var > 0:              
   var -= 1
   if var == 5:             # 变量为 5 时跳过输出
      continue
   print ('当前变量值 :', var)

Python没有goto语法

前面说了,在嵌套循环中,break只能跳出当前层的循环,无法全部跳出。在C语言中有goto语法,可以实现这一功能,但是Python没有goto。那有需求的时候怎么办呢?设置flag!

flag = False            # 用于控制外层循环的标志
for i in range(10):
    if flag:            # 当flag被内层循环设置为True的时候,跳出外层循环
        break
    for j in range(10):
        if j==7:
            flag = True
            break
        print(i,j)

快速编码练习

让我们在电子邮件列表中找到重复的电子邮件并打印它们。

email_list = ['roger@hey.com','michael@hey.com','roger@hey.com','prince@gmail.com']
duplicate_emails = []
for email in email_list:
  if email_list.count(email) > 1 and email not in duplicate_emails:
    duplicate_emails.append(email)
print(duplicate_emails)

读到这里,这篇“Python循环语句和函数怎么应用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注蜗牛博客行业资讯频道。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram