首页 > 编程语言 >Python中else关键字的常见用法

Python中else关键字的常见用法

时间:2023-06-09 20:04:42浏览次数:58  
标签:no Python else break 关键字 循环 yes 输入


Python中的else常见用法有三:选择结构、循环结构和异常处理结构。

(1)选择结构

这应该是最常见的用法,与关键字if和elif组合来使用,用来说明条件不符合时应执行的代码块。

(2)循环结构

Python中的for循环和while循环都可以带else子句,如果循环是因为条件不再成立而自然结束时会执行else中的代码块,如果循环是因为执行了break语句而提前结束则不会执行else中的代码块。

(3)异常处理结构

Python中的异常处理结构try...except...[else...][finally...]中也可以使用else,如果try中的语句块引发了异常就会由except去尝试捕获,不会再执行else中的代码;如果try中的代码没有引发异常,则会执行else中的代码。

下面的代码演示了在选择结构和异常处理结构中else的用法,模拟的问题是:输入若干个成绩,求所有成绩的平均分。每输入一个成绩后询问是否继续输入下一个成绩,回答“yes”就继续输入下一个成绩,回答“no”就停止输入成绩。

numbers = []
while True:
    x = input('请输入一个数字:')
    #在异常处理结构中使用else
    try:
        x = float(x)
        numbers.append(x)
    except:
        print('不是数字')
    else:
        print('输入成绩成功:{0}'.format(x))
    while True:
        flag = input('继续输入吗?(yes/no)')
        #限定用户输入内容必须为yes或no
        if flag.lower() not in ('yes', 'no'):
            print('只能输入yes或no')
        #在选择结构中使用else
        else:
            break
    if flag.lower()=='no':
        break
print(sum(numbers)/len(numbers))

下面的代码演示了for循环中else的用法,解决的问题是:查找100以内最大的素数。

for n in range(100, 1, -1):
    if n%2 == 0:
        continue
    for i in range(3, int(n**0.5)+1, 2):
        if n%i == 0:
            #结束内循环
            break
    #在for中使用else
    else:
        print(n)
        #结束外循环
        break

标签:no,Python,else,break,关键字,循环,yes,输入
From: https://blog.51cto.com/u_9653244/6450966

相关文章

  • Python实现字符串与指定密钥循环异或加解密
    异或运算在很多密码学算法中都有不同程度的应用,其运算特定在于一个数和另一个数连续异或两次仍得到原来的数。在实际使用中,因为要加密的信息和所使用的密钥在大多数情况下是不等长的,所以经常需要循环使用密钥。defcrypt1(source,key):'''source是要加密或解密的字符串,key是......
  • 详解Python生成器函数和生成器对象的原理和用法
    包含yield语句的函数可以用来创建生成器对象,这样的函数也称生成器函数。yield语句与return语句的作用相似,都是用来从函数中返回值。与return语句不同的是,return语句一旦执行会立刻结束函数的运行,而每次执行到yield语句并返回一个值之后会暂停后面代码的执行,下次通过生成器对象的__n......
  • Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
    第一步:在命令提示符环境使用pipinstalldjango命令安装django第二步:在命令提示符环境使用pythondjango-admin.pystartprojectdjango_greeting命令创建网站django_greeting第三步:利用资源管理器在网站目录django_greeting中创建子文件夹templates,并在该子文件夹中创建文件gree......
  • Python批量提取PDF文件中的文本
    首先需要执行命令pipinstallpdfminer3k来安装处理PDF文件的扩展库。importosimportsysimporttimepdfs=(pdfsforpdfsinos.listdir('.')ifpdfs.endswith('.pdf'))forpdf1inpdfs:pdf=pdf1.replace('','_').replace('-......
  • 基于Python+tkinter+pygame的音乐播放器完整源码
    importosimporttkinterimporttkinter.filedialogimportrandomimporttimeimportthreadingimportpygamefolder=''defplay():#folder用来表示存放MP3音乐文件的文件夹globalfoldermusics=[folder+'\\'+musicfo......
  • 最优的素数判断代码(Python)是这样写出来的
    素数判断是个很经典的问题,各种语言的程序设计课程都会涉及到,按照素数定义(除了1和自身,素数没有其他因数)很容易写出下面的代码:defisPrime1(n):foriinrange(2,n):ifn%i==0:returnFalsereturnTrue功能完全没有问题,就是非常非常非常非常慢。......
  • Python代码覆盖性测试入门
    覆盖测试通过代码分析工具和跟踪钩子来判断哪些代码可执行以及哪些代码被执行了,是对单元测试的有效补充,可以用来判断测试的有效性。Python扩展库coverage可以实现对Python代码的覆盖测试,使用pip工具安装之后,可以使用命令“coveragerunfile.py”对Python程序file.py进行覆盖测试,然......
  • 改造Python中文拼音扩展库pypinyin补充自定义声母全过程
    问题要从昨天说起,应根球老师发给我一个代码问可能是啥原因,如下:该函数的第二个参数3含义为只保留声母,为啥“应”的声母丢了呢?因为当时正是课间休息,一会儿还要上课,没时间多想,感觉或许是lazy_pinyin()函数的问题,毕竟是个懒惰的函数嘛,于是告诉应老师试试其他函数。今天早上来教研室以后......
  • Python运算符is与==的区别
    在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的。并且,如果两个变量是同一个列表或其他类型的可变序列,在某些操作中通过一个变量可以影响......
  • 使用Python提取JPEG图像文件dpi并计算物理尺寸
    感谢浙江省浦江中学方春林老师提供的问题、测试图像和第一版本的代码!下面的代码需要安装Python图像处理库pillow,由于不同公司对JPEG压缩算法和格式的实现不完全一样,有些类型的jpg文件暂时无法提取dpi信息,如果找到好的办法的话后期会再进行补充。fromosimportlistdirfromPILim......