首页 > 编程语言 >Python-流程控制-while循环-for循环

Python-流程控制-while循环-for循环

时间:2023-11-03 18:22:16浏览次数:35  
标签:count Python else break while 循环 print

Python-流程控制-while循环-for循环

写重复代码 是可耻的行为

程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许更复杂的执行路径。
循环(loop)用于解决重附代码的问题

1.循环类型

1.1.循环分类

1)根据循环次数分类
有限循环(次数限制)
无限循环(死循环)
标志位flag

2)根据语法可以分为以下类型

Python提供了for循环和while循环(在Python中没有do..while循环):
while 循环 在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环 重复执行语句
嵌套循环 你可以在while循环体中嵌套for循环

1.2.循环控制语句

循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
break结束全部循环,跳出整个循环
continue结束本次循环,进入下次循环
shell脚本里用break2可以跳出2层循环,但python不可以,这不是好语法,会造成语义混乱

2.while循环

参考文章:
http://www.runoob.com/python/python-while-loop.html

2.1.while循环语法:

while 条件:
    执行代码...
  • 实例:循环打印0-100
count = 0
while count <= 100:
    print("loop ",count)
    count += 1
print("-------end-------")

while True:     # 当这个条件成立就执行下面的代码
    print("count:",count)
    count = count +1    # count +=1 <=> count = count +1
    if count == 100:
        break
  • 实例:优雅退出
while True:
    if count ==3;
        break       # 结束退出
# 优化代码
while count <3:
  • 实例:打印100以内的偶数
count = 0
while count <= 100:
    if count % 2 == 0:		# 除以2余数为0的数
        print("loop ",count)
    count += 1
print("-------end-------")
  • 实例:第50次不打印,第60-80打印对应值的平方
count = 0
while count <= 100:
    if count == 50:
        pass 		# 过
    elif count >= 60 and count <= 80:
        print(count*count)
    else:
        print(count)
    count += 1
print("-------end-------")

2.2.死循环(永远运行的程序)

  • 语法:
while True:
    执行代码...
  • 实例1:死循环
count = 0
while True:
    print("forever  ",count)
    count += 1

2.3.循环终止语句

break 完全终止循环
continue 终止本次循环,跳过本次循环
exit() 任意位置退出程序

  • 实例1:break退出循环
count = 0
while count <= 100:
    print("loop ",count)
    if count == 5:
        break
    count += 1
print("-----out of while loop-----")
  • 实例2:玩猜年龄3次就退出了
age = 26
count = 0
while count < 3:
    age_guess = int(input("猜猜年龄:"))
    if age_guess == age:
        print("猜对了!")
        break
    elif age_guess < age:
        print("猜大点")
    else:
        print("猜小点")
    count += 1
  • 实例3:玩猜年龄3次后问是否还要玩
age = 26
count = 0
while count < 3:
    age_guess = int(input("猜猜年龄:"))
    if age_guess == age:
        print("猜对了!")
        break
    elif age_guess < age:
        print("猜大点")
    else:
        print("猜小点")
    count += 1
    if count == 3:
        again = input("还想玩吗[y]:")
        if again == 'y':
            count = 0
        else:
            exit('byebye')

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

2.4.python中while的特殊语法

while...else语句

while … else 在循环条件为 false 时(也就是训完执行完成)执行 else 语句块
while循环正常执行完,中间没有被 break 中止,就执行else语句
推论:没有看到else后面的语句就说明循环被中断过
else 作用:可以让你知道你的程序中间是否被break过

  • 实例1:while...else正常执行完
count = 0
while count <= 5:
    count += 1
    print("loop ",count)
else:
    print("循环正常执行完了")
print("-------end-------")

返回结果如下:
----------------------
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
循环正常执行完了
-------end-------
  • 实例2:while...else被break打断
count = 0
while count <= 5:
    count += 1
    if count == 3:
        print('终止循环')
        break
    else:
        print("loop ", count)
else:
    print("循环正常执行完了")
print("-------end-------")

返回结果如下:
----------------------
loop  1
loop  2
终止循环
-------end-------

不用非要从语义理解记忆,将while...else作为一组语句,正常语法执行完上面的while循环就执行下面的else语句,while循环被break终止就不执行下面的语句

2.5.简单语句组

类似 if 语句的语法,如果while循环体中只有一条语句,可以将该语句与while写在同一行中, 如下所示:

#!/usr/bin/python
flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"

3.for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
参考:http://www.runoob.com/python/python-for-loop.html

3.1.for循环语法

for iterating_var in sequence:
   statements(s)

3.2.实例演示

  • 实例1:打印0到10之间的奇数
## 方法1:for循环加if判断,比较复杂
for i in range(10):
    if i % 2 == 1:
        print(i)

## 方法2:步长,简单高效
for i in range(0,10,1):
    print("loop:",i)
  • 实例2:打印0到10之间的偶数,隔2个打印:02468
for i in range(0,10,2):
    print("loop:",i)
  • 实例3:从0打印到10之间的,隔3个打印:0369
for i in range(0,10,3):
    print("loop:",i)
  • 实例4:猜数字,只能猜3次,猜对就退出,猜不对就退出
num = 26
for i in range(3):
    guess_num = int(input("Please input your num:"))
    if guess_num == num:
        print("yes,you got it!")
        break
    elif guess_num > num:
        print("please guess smaller...")
    else:
        print("please guess bigger...")
else:           
    print("You have tried too many times")

只要上面的for循环正常执行完毕,没被打断,就会执行else的语句
如果遇到break被打断则不走else的,因为break下面的代码不执行
遇到continue后else的代码是会执行的

  • 练习:写一个登录程序,连续输错3次用户名或密码则退出。
_user = input("username:")
_passwd = input("password:")
for i in range(3):
    i_user = input("input username:")
    i_passwd = input("input password:")
    if i_user == _user and i_passwd == _passwd:
        print("Welcome login %s" %_user)
        break
    else:
        print("Invalid username or passord!")

10.参考地址

http://www.runoob.com/python/python-loops.html

标签:count,Python,else,break,while,循环,print
From: https://www.cnblogs.com/tssc/p/17808169.html

相关文章

  • Python_消息队列
    rabbitpy:RabbitMQSimplified###[scheme]://[username]:[password]@[host]:[port]/[virtual_host]url='amqp://guest:guest@localhost:5672/%2F'这个%2f是字符斜杠/uni-encode之后的结果,而/就是默认的hostname,它在HTTP传输的时候必须要转义。Port15672isforthe......
  • Python分享之内置函数清单
    Python内置(built-in)函数随着python解释器的运行而创建。在Python的程序中,你可以随时调用这些函数,不需要定义。最常见的内置函数是:print("HelloWorld!")在Python教程中,我们已经提到下面一些内置函数:基本数据类型type()反过头来看看dir()help()len()词典len()文本文......
  • Python之openpyxl模块的学习
    简介之前针对Excel的读取都是使用的xlrd模块,但是在一次实践中发现xlrd模块去掉了对xlsx格式的支持,因此改用openpyxl。以下内容仅包含使用openpyxl读取Excel文档的操作,并且比较浅显,更多内容请参考官方文档。注:一个excel就是一个工作簿(workbook),一个工作簿含有多个工作表(sheet)实......
  • python训练阿里云语音合成模型
    训练阿里云多人训练语音合成模型model_link:https://modelscope.cn/models/speech_tts/speech_sambert-hifigan_tts_zh-cn_multisp_pretrain_24k/summary1.获取KANTTS算法训练框架2.配置虚拟环境(conda)需要下载pytorch及其他kantts算法依赖3.数据准备:https://modelsco......
  • Python_web开发基础内容
    网络长连接的HTTP协议,会在响应头有加入这个头部字段:Connection:keep-aliveWebSocket:需要通过网络传输的任何实时更新或连续数据流,则可以使用WebSocketHTTP:不需要很频繁或仅获取一次的数据可以通过简单的HTTP请求查询都是用来跟踪浏览器用户身份的会话方式.cookie......
  • Python-运算符
    Python-运算符1.Python运算符的优先级以下表格列出了从最高到最低优先级的所有运算符:如果是同优先级则从左往右依次递减运算符描述**乘方,指数(最高优先级)~+-按位翻转,一元加号和减号(最后两个的方法名为+@和-@)*/%//乘,除,取模和取整除+-......
  • js事件循环机制
    何为进程?  程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程何为线程? 有了进程后,就可以运行程序的代码了。 运行代码的「人」称之为「线程」。 一个进程至少有一个线程,所以在进程开启后会自动创建一个线程来运行代码,该线程称之为主线程。 ......
  • Python 中的 __init__.py 和__all__ 详解(抄袭的joker) 因为写的实在是太好了
    Python中的__init__.py和__all__详解JOKER没意思先生 之前不论是自己写代码还是用别人的代码,都没有注意过这个东西,今天忽然看了一下,网上的教程感觉讲的都不是很清楚,自己又研究了研究,总结一下,如果有不对的地方,大家帮忙指正一下。在Python工程里,当pyth......
  • C语言 循环队列
    什么是队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。什么是循环队列在实际使用队列时,为了使队列空间能重复使用,往往对......
  • python 中[1:]、[:-1]和[::-1]
    代码分析:str='abcdefg'print(str[1:])print(str[:-1])print(str[-1:])print(str[::-1])print(str[::-2])print(str[:])-------------------------------------------------------------------------------------------结果bcdefgabcdefggfedcbagecaabcdefg1234567......