Python如何在range遍历的for循环内部获取动态变量c的取值
问题解决方法
1. 先修复代码语法错误
你提供的代码首先存在缩进不匹配的问题,内层for x循环的缩进级别错误,和外层for i循环的逻辑层级不对应,先修正缩进:
str1 = 1 str2 = 100 n = int(input('vvedite kolichestvo: ')) # 输入示例值4 r = 7 while str1 < str2: str1 = str1 + 1 for i in range(n): # 循环次数为输入的n值 i = i + 1 globals()['summ{}'.format(r+i)] = r+i c = globals()['summ{}'.format(r+i)] print(c) # 修复原代码多出来的缩进,和c赋值语句保持同层级,处于for i循环内部 for x in range(1, n): print(f"6 and {((x-1)%10)+1} and {(x - 1) // 10} and {c}")
2. 变量c的访问逻辑说明
- 变量c是在
for i循环内部定义的,修复缩进后的for x循环属于for i循环的内层子逻辑,天然可以直接访问外层作用域的c变量,不需要额外操作就能正常获取c的值。 - 当循环执行到c赋值为8的分支时,内层
for x循环的打印语句会自动读取到c=8的数值。
3. 固定测试c=8的场景
如果只需要在c=8时执行对应打印逻辑,可以加判断过滤:
c = globals()['summ{}'.format(r+i)] if c == 8: for x in range(1, n): print(f"6 and {((x-1)%10)+1} and {(x - 1) // 10} and {c}")
内容的提问来源于stack exchange,提问作者Azizxon Zufarov
相关产品推荐
相关产品推荐

