python创建字典的问题

我想用eval()函数创建一个{'name': 'tom'}的字典
当我输入eval("{'name':name}",{'name':'tom'})时,字典会成功创建
但当我输入eval('{'name':name}',{'name':'tom'})时,会显示错误SyntaxError: invalid syntax
我想问的是单引号'和双引号“在python里不是一样的吗,在这句代码为什么行不通

因为你用 eval('{'name':name}',{'name':'tom'}) 的时候:定义字符串的引号跟字符串里面的引号一样了,所以导致了语法错误,这种字符串里包含引号的,要注意一下,定义字符串的引号不能与字符串里的引号相同,可以用 单引号,双引号,三引号来作区分就好

单引号双引号一样
所以如果你的字符串本身是单引号的时候,应该用双引号来定义str
反之一样
而如果你str本身是双引号定义的,而字符里又同时包含双引号,那么双引号本身需要转义,单引号一样

在创建字符串的时候如果字符串包含单引号,那么外围就要用双引号。反之亦然。如果字符串包含单引号也包含双引号,那么外围就用三引号。三引号支持换行,还可以做注释使用。