相关疑难解决方法(0)

从父函数赋值给变量:"赋值前引用的局部变量"

对于以下Python 2.7代码:

#!/usr/bin/python

def funcA():
   print "funcA"
   c = 0 
   def funcB():
      c += 3
      print "funcB", c

   def funcC():
      print "funcC", c

   print "c", c
   funcB()
   c += 2
   funcC()
   c += 2
   funcB()
   c += 2
   funcC()
   print "end"

funcA()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

File "./a.py", line 9, in funcB
    c += 3
UnboundLocalError: local variable 'c' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

但是,当我注释掉该行c += 3funcB,我得到以下的输出:

funcA
c 0
funcB 0
funcC 2
funcB 4
funcC 6
end
Run Code Online (Sandbox Code Playgroud)

c在 …

python

32
推荐指数
2
解决办法
4万
查看次数

另一个大写字符串解决方案的每个奇数字符

我刚开始学习Python并为自己创造了一些我正在努力解决的任务......

所以,我正在处理使用字符串(通过索引访问字符串,更改等)的章节.

我的任务是 - 大写字符串的每个奇数字符.我在这里看到了解决方案:在Python中用字符串中的每个其他字母大写?

但我不喜欢它...想通过切片解决这个问题.所以我制作的是关注代码:

T = 'somesampletexthere'  
R=""

for i in range(0, len(T[1::2])):
        R+=T[::2][i].upper()+T[1::2][i].lower()

print R
Run Code Online (Sandbox Code Playgroud)

当有偶数个字符时,这个代码工作得很好,例如使用TESTTEXT但是当数字是奇数时,就像这里的例子一样,它将跳过最后一个字符(在本例中是E)

这是因为范围是直到len(T[1::2]))(偶数字符的长度),但如果我将尝试奇数字符的长度,len(T[::2]))我将得到错误:

IndexError: string index out of range
Run Code Online (Sandbox Code Playgroud)

逻辑上因为奇数字符的数量在1上总是更大(在具有奇数字符的文本的情况下).

所以,我的问题是 - 我怎么能抑制错误?因此,如果索引超出给定字符串的范围,Python只返回null或其他内容?

或使用切片的任务的任何其他解决方案?

python string

3
推荐指数
1
解决办法
2987
查看次数

标签 统计

python ×2

string ×1