草庐IT

try-catch-else

全部标签

python - 有没有更 Pythonic 的方式来组合 Else : statement and an Except:?

我有一段代码在AutoCAD中搜索包含某些关键字的文本框(例如,在本例中为"overall_weight")并将其替换为字典中的值。但是,有时字典键被分配给一个空字符串,有时,键完全不存在。在这些情况下,应将"overall_weight"关键字替换为"N/A"。我想知道是否有一种更Pythonic的方式可以将KeyError异常和else结合到nObject.TextString="N/A"所以它不会输入两次。ifnObject.TextString=="overall_weight":try:ifself.var.jobDetails["OverallWeight"]:nObjec

python - 根据 if-elif-else 条件创建新列

我有一个数据框df:ABa22b31c13我想根据以下条件创建一个新列:如果行A==B:0如果行A>B:1如果行A所以给定上表,应该是:ABCa220b311c13-1对于典型ifelse我做的案例np.where(df.A>df.B,1,-1),pandas是否提供了一种特殊的语法来一步解决我的问题(无需创建3个新列然后组合结果)? 最佳答案 将上面列出的一些方法形式化:创建一个对数据框的行进行操作的函数,如下所示:deff(row):ifrow['A']==row['B']:val=0elifrow['A']>row['B']:

python - 名称错误 : global name 'execfile' is not defined trying to run an app on Google App Engine Launcher

我在Windows中收到此错误,我有3.2和2.7版本的python。我该如何解决这个问题? 最佳答案 您只需要转到编辑/首选项并指定正确版本的python路径 关于python-名称错误:globalname'execfile'isnotdefinedtryingtorunanapponGoogleAppEngineLauncher,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

python - 类型错误 : 'list' object is not callable while trying to access a list

我正在尝试在有列表的地方运行此代码。我需要添加到内部列表,但我收到错误TypeError:'list'objectisnotcallable.谁能告诉我我在这里做错了什么。defcreatelists():globalmaxcharglobalmincharglobalworddictglobalwordlistsforiinrange(minchar,maxchar+1):wordlists.insert(i,list())#adddatatolistnowforwordsinworddict.keys():printwordsprintwordlists(len(words))#

Python try finally block 返回

这个问题在这里已经有了答案:WeirdTry-Except-Else-FinallybehaviorwithReturnstatements(3个回答)关闭9年前。下面有有趣的代码:deffunc1():try:return1finally:return2deffunc2():try:raiseValueError()except:return1finally:return3func1()func2()请有人解释一下,这两个函数会返回什么结果并解释原因,即描述执行顺序 最佳答案 来自PythondocumentationAfinal

python - 类型错误 : only length-1 arrays can be converted to Python scalars while trying to exponentially fit data

f=np.loadtxt('SingleSmallAngle1.txt',unpack=True,skiprows=2)g=np.loadtxt('SingleSmallAngle5.txt',unpack=True,skiprows=2)x=f-g[:,:11944]t=range(len(x))m=math.log10(abs(x))np.polyfit(t,m)plt.plot(t,abs(x))plt.show()我只是不确定如何解决我的问题。它一直在说:m=math.log10(abs(x))TypeError:onlylength-1arrayscanbeconverted

python - Return 语句的奇怪 Try-Except-Else-Finally 行为

这是一些行为异常的代码。这是我编写的行为的简化版本。这仍然会证明奇怪的行为,我对为什么会发生这种情况有一些具体的问题。我在Windows7上使用Python2.6.6。defdemo1():try:raiseRuntimeError,"ToForceIssue"except:return1else:return2finally:return3defdemo2():try:try:raiseRuntimeError,"ToForceIssue"except:return1else:return2finally:return3except:print4else:print5finally:

python - 如何在嵌套的 try/except block 中重新引发异常?

我知道,如果我想重新引发异常,我只需在相应的exceptblock中使用不带参数的raise即可。但是给定一个像这样的嵌套表达式try:something()exceptSomeErrorase:try:plan_B()exceptAlsoFailsError:raisee#I'dliketoraisetheSomeErrorasifplan_B()#didn'traisetheAlsoFailsError如何在不破坏堆栈跟踪的情况下重新引发SomeError?在这种情况下,单独的raise会重新引发更新的AlsoFailsError。或者我怎样才能重构我的代码来避免这个问题?

python - hasattr() 与 try-except block 处理不存在的属性

ifhasattr(obj,'attribute'):#dosomthing对try:#accessobj.attributeexceptAttributeError,e:#dealwithAttributeError应该首选哪个以及为什么? 最佳答案 有没有可以说明性能差异的长凳?是你的friend了$python-mtimeit-s'classC(object):a=4c=C()''hasattr(c,"nonexistent")'1000000loops,bestof3:1.87usecperloop$python-mtime

python - `if key in dict` 与 `try/except` - 哪个更易读?

我有一个关于习语和可读性的问题,对于这种特殊情况,Python哲学似乎存在冲突:我想从字典B构建字典A。如果B中不存在特定键,则什么都不做并继续。哪种方式更好?try:A["blah"]=B["blah"]exceptKeyError:pass或if"blah"inB:A["blah"]=B["blah"]“做事并请求原谅”与“简单明了”。哪个更好,为什么? 最佳答案 异常(exception)不是条件。条件版本更清晰。这很自然:这是直接的流控制,这是为条件设计的,而不是异常(exception)。异常版本主要用作在循环中进行这些查