在 python 中将字符串转换为 char
Convert string to char in python
是否有可能(例如内置函数)在 python 中将字符串转换为字符?例如,如果我给变量赋值
p1=100
然后有字符串
"p1",
是否可以像
一样将p1的值赋给一个新的变量t
t=char("p1")
所以我得到
print(t)->100 ?
显然,上述解决方案不起作用,因为它会抛出以下错误消息:
NameError: name 'char' is not defined
编辑:问题与最佳实践无关:我知道我应该用字典来做到这一点,但我想做的是理解 Python 中的数据类型以及如何转换它们。例如,将字符串转换为整数相当容易,所以我想知道这是否同样适用于字符串到字符的转换。
eval() 命令确实解决了示例的问题,但没有回答上述问题。所以我会将目标编辑为
char("p11")=20
哪个应该给我
print(p11) -> 20
没有。使用字典。
>>> names = {'p1': 100, 'p2': 200}
>>> t = names['p1']
>>> t
100
如果名称不存在,这将抛出 KeyError
:
>>> t = names['p3']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'p3'
... 但您可以使用 dict.get
并提供默认值:
>>> t = names.get('p3', 'default')
>>> t
'default'
默认默认值是 None
。
(顺便说一句,这与将字符串转换为字符(acter?)无关,您的术语很混乱。)
您可能正在寻找 eval()
:https://docs.python.org/3.5/library/functions.html#eval
p1 = 100
print(eval('p1')) # prints 100
如果你想计算表达式你也可以使用exec()
p1 = 100
t = 'p1 += 99'
exec(t)
print(p1) # prints 199
但正如其他人已经指出的那样,您应该尽可能避免使用它。
timgeb 提供了一个不错的选择,例如字典。
如果你想把一个字符串变成一个全局变量你也可以这样做:
globals()['y'] = 5
print(y)
注意:当你运行你的代码在全局范围内(在一个函数之外),你也可以使用locals()['y'] = 5
- 但是这不会在非全球范围内工作!
如果你想把它变成字符那么不要使用“char
”
在 python 中,char 声明为 chr
所以你可以这样:
chr(input('Enter here'))
是否有可能(例如内置函数)在 python 中将字符串转换为字符?例如,如果我给变量赋值
p1=100
然后有字符串
"p1",
是否可以像
一样将p1的值赋给一个新的变量tt=char("p1")
所以我得到
print(t)->100 ?
显然,上述解决方案不起作用,因为它会抛出以下错误消息:
NameError: name 'char' is not defined
编辑:问题与最佳实践无关:我知道我应该用字典来做到这一点,但我想做的是理解 Python 中的数据类型以及如何转换它们。例如,将字符串转换为整数相当容易,所以我想知道这是否同样适用于字符串到字符的转换。 eval() 命令确实解决了示例的问题,但没有回答上述问题。所以我会将目标编辑为
char("p11")=20
哪个应该给我
print(p11) -> 20
没有。使用字典。
>>> names = {'p1': 100, 'p2': 200}
>>> t = names['p1']
>>> t
100
如果名称不存在,这将抛出 KeyError
:
>>> t = names['p3']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'p3'
... 但您可以使用 dict.get
并提供默认值:
>>> t = names.get('p3', 'default')
>>> t
'default'
默认默认值是 None
。
(顺便说一句,这与将字符串转换为字符(acter?)无关,您的术语很混乱。)
您可能正在寻找 eval()
:https://docs.python.org/3.5/library/functions.html#eval
p1 = 100
print(eval('p1')) # prints 100
如果你想计算表达式你也可以使用exec()
p1 = 100
t = 'p1 += 99'
exec(t)
print(p1) # prints 199
但正如其他人已经指出的那样,您应该尽可能避免使用它。 timgeb 提供了一个不错的选择,例如字典。
如果你想把一个字符串变成一个全局变量你也可以这样做:
globals()['y'] = 5
print(y)
注意:当你运行你的代码在全局范围内(在一个函数之外),你也可以使用locals()['y'] = 5
- 但是这不会在非全球范围内工作!
如果你想把它变成字符那么不要使用“char
”
在 python 中,char 声明为 chr
所以你可以这样:
chr(input('Enter here'))