Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将字符串转换为字符_Python_String Conversion - Fatal编程技术网

在python中将字符串转换为字符

在python中将字符串转换为字符,python,string-conversion,Python,String Conversion,在python中是否有可能(例如内置函数)将字符串转换为字符?例如,如果我给变量赋值 p1=100 然后拿着绳子 "p1", 是否可以将p1的值分配给新变量t,如 t=char("p1") 这样我就可以 print(t)->100 ? 显然,上述解决方案不起作用,因为它会抛出以下错误消息: NameError: name 'char' is not defined 编辑:问题不在于最佳实践:我知道我应该使用字典来实现这一点,但我正试图理解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'
其中默认值为
None


(顺便说一下,这与将字符串转换为字符(acter?)无关,您的术语非常混乱。)

您可能正在寻找
eval()

如果要计算表达式,还可以使用
exec()

但正如其他人已经指出的,如果可能的话,你应该避免。 例如,timgeb为字典提供了一个不错的选择


如果要将字符串转换为全局变量,还可以执行以下操作:

globals()['y'] = 5
print(y)

注意:当您在全局范围内(函数外部)运行代码时,也可以使用
locals()['y']=5
-,但这在非全局范围内不起作用

如果要将其更改为字符,则不要使用“
char
” 在python中,字符被声明为
chr
所以你可以这样做:

chr(input('Enter here'))

不知道你的意思。您可能正在查找
chr()
?我尝试了,但它给了我另一条错误消息:TypeError:integer是必需的(get type str)
t=eval('p1')
。但请考虑其他选择,如下面建议的答案。您需要“字符串到字符的转换”,但Python中没有
char
数据类型。我建议您从阅读Python教程开始。这是熟悉这门语言的一个很好的方法,而不是随意输入代码并询问Stackoverflow为什么它们不起作用。是的。直接打电话是不好的做法,太冒险了。堆栈中已经提出了一个问题:这是我认为最好的解决方案。还有get()方法
names.get('p1')
这就是我想要的答案。你能详细解释一下为什么它如此糟糕吗?
eval()
也可能运行恶意代码。如果您使用的是用户输入,这可能会带来安全风险。因此,如果我收集正确,它不会将字符串更改为字符,而是执行字符串。这意味着,如果我将eval('p1')=20,它将抛出以下错误消息:SyntaxError:can not assign to function call您一直要求“将字符串更改为字符”,但这没有意义。如果
eval()。
p1 = 100
t = 'p1 += 99'
exec(t)
print(p1)           # prints 199
globals()['y'] = 5
print(y)
chr(input('Enter here'))