即使期望块返回-1一次迭代,Python中是否有任何方法可以完成for循环的所有迭代?

如何解决即使期望块返回-1一次迭代,Python中是否有任何方法可以完成for循环的所有迭代?

def try():
    for i in range(9):
        try:
           {body}
        except:
            return -1

根据我的理解,如果任何迭代均发生异常,则程序将退出循环并返回-1,而不完成整个循环。我希望程序可以完成循环的其余部分,即使任何迭代都发生异常。

有什么办法吗?

解决方法

您可以像这样:继续而不是返回:

[1,2,3,4,5]
1
[5,5]
2
[5,10,5]
3
[5,15,5]
4
[5,20,5]
5
[5,25]
,
xlist=[1,'THREE',5]
print(xlist)

for item in xlist:

    try:
        xlist[xlist.index(item)] = item / 5
    except:
        xlist[xlist.index(item)] = item
    finally:
        print(item)

print(xlist)
,

您可以为此目的使用def printList1(list,col,STR_FMT='{}',gap=1): list = [STR_FMT.format(x).lstrip() for x in list] FMT2 = '%%%ds%%s' % (max(len(x) for x in list)+gap) print(''.join([FMT2 % (v,"" if (i+1) % col else "\n") for i,v in enumerate(list)])) def printList2(list,col=None,gap=2,uniform=True,ljust=True,STR_FMT="{}",MAX_CHARS=120,end='\n'): list = [STR_FMT.format(x).strip() for x in list] Lmax,valid,valid_prev,cp,c = [MAX_CHARS+1],None,1,max(col,1) if col else 1 LoL_prev,Lmax_prev = [],[] while True: LoL = [list[i::c] for i in range(c)] Lmax = [max(len(x)+gap for x in L) for L in LoL] # Find max width of each column with gap width if uniform: # Set each max column width to max across entire set. Lmax = [max(Lmax) for m in Lmax] valid_prev,valid = valid,sum(Lmax) <= MAX_CHARS if (col and (valid or (c == 1))) or not MAX_CHARS: # If column and valid strlen or MAX_CHARS is empty break elif valid_prev and not valid_prev == valid: # If valid_prev exist c = cp if valid_prev and not valid else c LoL,Lmax = (LoL_prev,Lmax_prev) if valid_prev else (LoL,Lmax) break LoL_prev,Lmax_prev = LoL,Lmax cp,c = c,(c + (+1 if valid else -1)) ljust = '-' if ljust else '' FMT = ["%%%s%ds%s" % (ljust,max(Lmax) if uniform else m,end if i+1 == c else '') for i,m in enumerate(Lmax)] outStr = ''.join([''.join([f % v for v,f in zip(L,FMT)]) for L in zip(*LoL)]) remStr = ''.join([f % v for v,f in zip(list[c * (len(list) // c):],FMT)]) print(outStr+(remStr+end if remStr else remStr),end='')

如果您希望在>>> foolist = ['exiv2-devel','mingw-libs','tcltk-demos','fcgi','netcdf','pdcurses-devel','msvcrt','gdal-grass','iconv','qgis-devel','qgis1.1','php_mapscript'] >>> printList2(foolist) exiv2-devel mingw-libs tcltk-demos fcgi netcdf pdcurses-devel msvcrt gdal-grass iconv qgis-devel qgis1.1 php_mapscript >>> printList2(foolist,MAX_CHARS=48,uniform=False,gap=3) exiv2-devel mingw-libs tcltk-demos fcgi netcdf pdcurses-devel msvcrt gdal-grass iconv qgis-devel qgis1.1 php_mapscript >>> printList2(foolist,col=2,gap=3) exiv2-devel mingw-libs tcltk-demos fcgi netcdf pdcurses-devel msvcrt gdal-grass iconv qgis-devel qgis1.1 php_mapscript >>> printList2(foolist,ljust=False,gap=2) exiv2-devel mingw-libs tcltk-demos fcgi netcdf pdcurses-devel msvcrt gdal-grass iconv qgis-devel qgis1.1 php_mapscript >>> printList2(foolist,col=10,gap=2) exiv2-devel mingw-libs tcltk-demos fcgi netcdf pdcurses-devel msvcrt gdal-grass iconv qgis-devel qgis1.1 php_mapscript >>> from math import pi >>> FloatList = [pi**(i+1) for i in range(32)] >>> printList2(FloatList,STR_FMT="{:.5g},",col=7,ljust=False) 3.1416,9.8696,31.006,97.409,306.02,961.39,3020.3,9488.5,29809,93648,2.942e+05,9.2427e+05,2.9037e+06,9.1222e+06,2.8658e+07,9.0032e+07,2.8284e+08,8.8858e+08,2.7916e+09,8.77e+09,2.7552e+10,8.6556e+10,2.7192e+11,8.5427e+11,2.6838e+12,8.4313e+12,2.6488e+13,8.3214e+13,2.6142e+14,8.2129e+14,2.5802e+15,8.1058e+15,块之后执行语句,请使用pass

如果要继续下一次迭代,请使用continue

例如:

try-except

如果您想pass,则应使用continue

def try():
    for i in range(9):
        try:
           {body}
        except:
            pass
        print('execute')

由于print('execute')之后没有要执行的语句,因此可以使用pass,但是使用def try(): for i in range(9): try: {body} except: continue 不会改变逻辑。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-