[英]a = 'b' make it so string 'a' can be changed to the variable a to equal the string 'b'
因此,在python中,我想将字符串更改为文字:
a = 'b'
b = 'c'
c = 'd'
encoded = input('Type encoded text and enter for decoded text: ')
decoded_list = MAKE_LITERAL_AND_SHOW_VALUES(list(encoded))
##Example: ['a','b','c'] becomes [a, b, c] so becomes ['b','c','d']
decoded = CONCATENATE(decoded_list)
##Example: ['b','c','a'] becomes 'bcd'
print(decoded)
有什么功能使之成为可能?
您可以改用字典吗? 我的意思是,您直接问题的答案使用的是诸如globals()
...(但我不建议这样做)
a = 'b'
b = 'c'
c = 'd'
def MAKE_LITERAL_AND_SHOW_VALUE(encoded):
return [globals()[i] for i in encoded]
print MAKE_LITERAL_AND_SHOW_VALUE(encoded)
替代方法是:
letterDict = {'a':'b', 'b':'c', 'c':'d'}
然后,如果您想使用它:
def MAKE_LITERAL_AND_SHOW_VALUE(encoded):
letterDict = {'a':'b', 'b':'c', 'c':'d'}
return [letterDict[i] for i in encoded]
(根据MattDMo的建议)
99.9%的时间使用globals()
是个坏主意。 那显然是我编造的一个数字,但关键是它几乎总是不必要的。 出于大多数初学者的相同原因,我敢猜测您喜欢这种方法。 使用起来看起来很直观,在某些情况下,您可以编写更少的代码,等等。
问题是您可能养成不良习惯。 依靠模块的全局字典不是一个好的设计选择。 通常,这增加了耦合,减少了封装,并使代码很难调试。 这与将变量与函数内部的global
变量传递并没有什么不同。 随着程序复杂度的增加,不要期望别人或自己(将来)对阅读所编写的代码感到满意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.