当前位置:首页 > 教育培训 >

python代码正确但是不运行

来源:原点资讯(www.yd166.com)时间:2023-06-04 23:11:12作者:YD166手机阅读>>

这节课我们讲要了解一个新的知识:异常处理。假设我们写一个程序,计算两个数相除的商,程序运行后除数输入0。再假设程序中要求用户输入一个整数,用户输入了一个浮点数。这两种情况程序肯定会报错,但是这种问题我们在写程序时有办法控制吗?那如果用户就这样输入了,我们又该怎么处理呢?我们一起来了解这一课的知识。

一、什么是异常

在程序执行中,任何中断正常程序流程的条件都是异常。例如,发生下列情况时,会出现异常:

  1. 类型无法转换
  2. 除数为0
  3. 打开的文件不存在
  4. 需要从网络获取内容,电脑没有联网
  5. 访问列表等类型时索引越界
  6. ……

异常和程序代码错误是有区别的。产生异常的代码本身没有问题,在执行程序时由于不可预见的操作而产生的。而错误是代码本身的问题造成程序无法运行,比如以下问题不属于异常,属于错误:代码缩进错误,分支或循环结构语句后面忘记加冒号等等。

在编写程序时,我们可以事先考虑程序运行时可能出现的异常,并对异常进行处理,避免由于异常而导致程序非正常退出。下面我们具体看一下Python中的异常处理语句。

二、try…except…格式

try…except……的语法格式:

try: <语句块1> except: <语句块2>

当碰到触发异常的语句,try代码块的剩余代码会被忽略,except代码块的代码将被执行。

我们看一下具体的例子:

try: a = int(input("请输入被除数:")) b = int(input("请输入除数:")) c = a / b print(c) except: print('除数不能为0')

以上代码中,运行时被除数输入整数、除数如果输入非0的整数,程序正常运行,会计算出结果并打印;如果被除数和除数输入非整数或除数输入0,则print(c)不会再运行,而直接执行except中的语句块,打印“除数不能为0”

三、try…except…except…格式

try…except…except…的语法格式:

try: <语句块1> except: <语句块2> except: <语句块3>

当碰到触发异常的语句时,try代码块的剩余代码将被忽略。根据错误的具体情况,选择except代码块的代码执行。

我们看具体的例子:

try: a = int(input('请输入被除数:')) b = int(input('请输入除数:')) m = a / b print('商是', m) except ValueError: print('输入的不是数字') except ZeroDivisionError: print('除数为0') except: print('其他错误')

多个except语句需要指定触发异常的Error类型。

常见的Error类型如下:

异常名称

描述

ValueError

值错误,输入的数据跟要求不符合

ZeroDivisionError

除0错误,除数为0

NameError

名称错误,变量没有被定义

IndexError

索引错误,索引越界

KeyError

键错误,调用字典不存在的键

TypeError

数据类型错误,如字符串与数字相加

FileNotFoundError

文件不存在错误,读取不存在的文件

以上代码运行时,如输入两个整数,程序正常运行,输出商的结果;如果输入的非整数,则运行“except ValueError”中的代码块,打印“输入的不是数字”;如果除数输入0,则运行“except ZeroDivisionError”中的代码块,打印“除数为0”;如果出现其他错误,则运行最后一个except中的语句块,打印“其他错误”。

四、try…except…else…finally…格式

try…except…else…finally…的语法格式:

try: <语句块1> except: <语句块2> else: <语句块3> finally: <语句块4>

当碰到触发异常的语句时,try代码块的剩余代码将会被忽略,执行except语句块;当try语句块正确时,try代码块执行完毕,执行else语句块;不管try代码块正确与否,finally代码块均要执行。

我们看具体的例子:

try: f = open('students.csv') students = f.read().strip().split(',') f.close() except FileNotFoundError: print('文件不存在!') else: print(students) finally: print('程序运行结束!')

程序运行后读取students.csv文件,如果文件读取成功,读取文件内容并赋值给列表students;如果文件不存在,则执行except语句块的内容,打印“文件不存在!”。try语句块成功执行后,执行else语句块中的内容打印列表内容。

最后,无论try语句有无错误,finally代码块一定会被执行,最后打印“程序运行结束!”。

五、课后思考题

1、选择题:

运行下列程序段时输入“yes”,则输出的结果是( )

try: x = eval(input()) print(x) except NameError: print('ok')

A. yes B. ok C. 无法运行 D. 3

2、判断题:

异常处理结构中,try程序段中的每一个运行错误语句,都要转移到except程序段中,执行异常处理语句。

3、编程题

有如下列表:

['伍白安', '永映秋', '秋卓然', '叶冬莲', '卓运华', '邸美丽']

输入学号,打印学生的姓名。如果学号不存在,则输出“学号不存在”。程序可重复执行,输入字母“q”退出程序,

六、上节课思考题答案

参考代码:

import csv with open(r'D:\score.csv', 'r') as f: score = list(csv.reader(f)) candidate = [] for row in score[1:]: if float(row[1]) >= 85 and float(row[2]) >= 90 and float(row[3]) >= 90: candidate.append(row[0]) with open(r'D:\candidate.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerow(candidate)

栏目热文

python点击运行没反应(python的idle点了之后没反应)

python点击运行没反应(python的idle点了之后没反应)

安装Python后,它自带一个编辑器IDLE,但是使用几次之后出现启动不了的情况,可做如下操作。Windows操作系统下...

2023-06-04 23:23:02查看全文 >>

python复制的代码不能运行(复制的python代码无法运行)

python复制的代码不能运行(复制的python代码无法运行)

全文共3733字,预计学习时长7分钟python最近火了,大红大紫那种。PYPL(编程语言受欢迎程度) 四月官方榜单宣布...

2023-06-04 22:47:28查看全文 >>

python代码有时能运行有时不能(python代码正确但是运行没有结果)

python代码有时能运行有时不能(python代码正确但是运行没有结果)

Python是一种强大的编程语言,但是在编写Python程序时,程序崩溃是一个常见的问题。程序崩溃会导致程序无法继续执行...

2023-06-04 23:09:30查看全文 >>

python代码正确但运行不了(python代码画爱心)

python代码正确但运行不了(python代码画爱心)

一、Python常见异常类型总的来说,编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运行时错误。在 Pytho...

2023-06-04 23:15:31查看全文 >>

抖音的游戏怎么在哪里找(抖音里面怎么才能找到游戏)

抖音的游戏怎么在哪里找(抖音里面怎么才能找到游戏)

抖音吉牛勇进是生肖游乐园活动中的小游戏,这个活动玩法还是挺有趣的,玩家在游戏中需要控制小牛去不断撞击敌人,将敌人全部都撞...

2023-06-04 22:39:33查看全文 >>

python代码不能持续运行(python代码没错但无法运行)

python代码不能持续运行(python代码没错但无法运行)

文 | xybaby 出处 | cnblogs服务器程序员最怕的就是程序crash,不过有时候程序没有crash,但是“...

2023-06-04 23:12:08查看全文 >>

python运行不出结果(python运行不出结果也不报错)

python运行不出结果(python运行不出结果也不报错)

1.异常python发生错误时,会创建一个异常对象,如果编写了处理该异常的代码,程序将继续运行,如果没有编写,程序将停止...

2023-06-04 23:21:02查看全文 >>

python代码没错但运行不出来(python写完代码怎么运行)

python代码没错但运行不出来(python写完代码怎么运行)

#父与子的编程之旅#与小卡特一起学Python#第十四课一#终于到了对象这一章节,集前面学习的大成,尝试着一点一点的理解...

2023-06-04 22:41:24查看全文 >>

python代码点了运行没用(python代码运行后不动怎么办)

python代码点了运行没用(python代码运行后不动怎么办)

本文只适合python初学者,老鸟可以先飞走。turtle是python标准库之一,可以用来简单地实现画图功能。在使用t...

2023-06-04 22:52:25查看全文 >>

python代码总是无法运行

python代码总是无法运行

本章节我们来讲述一下Python的编码规范,通过详细对代码编写规则以及命名规范等进行介绍。1.编写规则Python采用P...

2023-06-04 23:17:00查看全文 >>

文档排行