标签: try-except

提出错误的'e'有什么作用?

我为初学者做了一个关于我的python的讲座,其中某个主题没有得到很好的解释.那这是e做什么的呢?

def x(a, b):
    try:
        return a / b

    except ZeroDivisionError, e:
        return 0
Run Code Online (Sandbox Code Playgroud)

python exception-handling exception python-2.7 try-except

0
推荐指数
1
解决办法
808
查看次数

更好的方法使用try除了块

我需要执行多个Python语句,其中很少一些可能在执行期间失败,即使在失败后我希望其余的执行.

目前,我正在做:

try:
    wx.StaticBox.Destroy()
    wx.CheckBox.Disable()
    wx.RadioButton.Enable()
except:
    pass
Run Code Online (Sandbox Code Playgroud)

如果任何一个语句失败,except将执行并退出程序.但我需要的是即使它失败了它应该运行所有三个语句.

我怎么能用Python做到这一点?

python try-except

0
推荐指数
1
解决办法
177
查看次数

Python嵌套尝试除了vs if,elif,else

我正在努力熟悉Python的最佳实践.根据Python的Zen,请求宽恕比要求许可更容易,但是,它也说平面比嵌套和可读性更好.你会怎么处理这个问题:

我有3本词典.我有一把钥匙,我想测试钥匙是否在字典中.钥匙只会出现在其中一个中.根据它所在的字典,我想做不同的事情.

使用try/except,我得出以下解决方案:

try:
    val = dict1[key]
except KeyError:
    try:
        val = dict2[key]
    except KeyError:
        try:
            val = dict3[key]
        except KeyError:
            do_stuff_key_not_found()
        else:
            do_stuff_dict3()
    else:
        do_stuff_dict2()
else:
    do_stuff_dict1()
Run Code Online (Sandbox Code Playgroud)

根据Python的EAFP原则,这将是一种方法,但它看起来很混乱,并且不是很易读.

一个更简单的解决方案是:

if key in dict1:
    val = dict1[key]
    do_stuff_dict1()
elif key in dict2:
    val = dict2[key]
    do_stuff_dict2()
elif key in dict3:
    val = dict3[key]
    do_stuff_dict3()
else:
    do_stuff_key_not_found()
Run Code Online (Sandbox Code Playgroud)

Pythonic处理这样一个案例的方法是什么?我应该坚持EAFP原则,还是平坦且可读性更重要?

python if-statement try-except

0
推荐指数
1
解决办法
645
查看次数

为什么我的 exit() 命令在 python 中不起作用?

下面是我根据输入计算卡路里的代码,在打印语句之后,我想退出代码并无限循环,直到用户输入正确的值。

import sys
def main():
    while True:
        try: 
            print("Please enter Age,Weight,Heart Rate and Workout Time ")
            Age,Weight,HR,Time = map(eval,input().split(' '))
            men = ( (Age * 0.2017) - (Weight * 0.09036) + (HR * 0.6309) - 55.0969 ) * Time / 4.184
            women =  ( (Age * 0.074) - (Weight * 0.05741) + (HR * 0.4472) - 20.4022 ) * Time / 4.184
            print("Men:",men," Calories \nWomen:",women,"Calories \n")
            exit()
        except:
            print("Please enter numbers only \n \n")

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

即使输入值正确并且不退出代码,代码也会转到除非,我错过了什么?

python try-except

0
推荐指数
1
解决办法
36
查看次数

用于引发值错误的 try 和 except 块

我正在研究扣除金额函数,如果值中 a < b,它应该会引发运行时错误:

这是我的代码

def deduct_amount(a, b):
    try:
        b - a < 0
    except ValueError:
        print(a + ' can not be less than' + b)
    else:
        c = a - b
        return c


deduct_amount(8, 12)


Run Code Online (Sandbox Code Playgroud)

我知道我的 try 语句是错误的。如果 a 小于 b,如何抛出值错误

python try-except

0
推荐指数
1
解决办法
876
查看次数

如何简化重复的 try- except 块

我有下面的代码需要检查是否找到任何对象的可见属性。try- except 块中的每个首字母缩略词函数如果找到则返回一个对象引用,每个都有自己的visible属性。如果未找到任何首字母缩略词对象,我的程序将因调用(例如)DR() 而引发 LookUpError。我觉得必须有一种方法来简化这段代码,这样我就不必指定所有这些单独的 try- except 块,但我无法考虑如何有效地做到这一点。

    def detect_planning_workflow_page():
        
        workflow = None
        
        try:
            if DR().visible:
                workflow = "DR"
        except LookupError:
            pass
        
        try:
            if LL().visible:
                workflow = "LL"
        except LookupError:
            pass
        
        try:
            if AZ().visible:
                workflow = "AZ"
        except LookupError:
            pass
        
        try:
            if SP().visible:
                workflow = "SP"
        except LookupError:
            pass
        
        try:
            if MS().visible:
                workflow = "Define Region"
        except LookupError:
            pass
        
        return workflow

Run Code Online (Sandbox Code Playgroud)

python lookup error-handling try-except

0
推荐指数
1
解决办法
34
查看次数

使用字典尝试并排除异常 (Python)

假设我向用户询问一个单词,如果该单词不是字典中的键,那么我想打印“该单词不是字典中的键,请重试”。我将如何使用 try 和 except 来做到这一点?这是我到目前为止所拥有的。

dict = {"These": 1, "are": 2, "words": 3}
while True:
    try:
        w = input("Enter a word: ")
    except: 
        print("That word is not a key in the dictionary, try again")
    else:
        print("That word is a key in the dictionary")
Run Code Online (Sandbox Code Playgroud)

python dictionary try-except

-1
推荐指数
1
解决办法
9241
查看次数

如何使 try/except 循环直到 true

try:
    int(days)
except:
    print('Invalid input. A integer value was expected. Try again.')
    days = (input("Enter the number of days: ", ))
Run Code Online (Sandbox Code Playgroud)

我如何使这个 try 语句循环直到为真?

python try-except

-1
推荐指数
1
解决办法
105
查看次数

Delphi中使用outlook2000单元的问题

我正在尝试使用单位“outlook2000”,但我的Try 语句出现问题 ,我收到Error: E2021 Class type required。如果我在没有这个单元或没有except 的情况下执行我的应用程序,那么一切都很好。

Uses ...,outlook2000;

procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
begin
try
s:='Hello';
Except On E:Exception do
ShowMessage(E.Message);

end;
end;
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下出了什么问题吗?我使用 Delphi 10.1 Berlin,Win 10。

在此输入图像描述

delphi outlook try-except

-1
推荐指数
1
解决办法
136
查看次数