字典中出现语法错误的Noob(python)

字典中出现语法错误的Noob(python),python,dictionary,syntax-error,emoji,Python,Dictionary,Syntax Error,Emoji,我正试图按照使用Mosh编程的教程学习Python 我创建了一个程序,它启动并向我打招呼,然后让我在列表中选择一个项目。每个列表项都是本教程介绍的“子程序”。因此,我的程序中有两个子程序: 一个聊天翻译器,应该返回文本,并通过字典将:)和:(转换为表情符号 然后还有一个方形计算器 我面临的问题是,我的聊天翻译器在字典中遇到语法错误。这就是错误发生的地方,在字典第2行的第一个引号处: C:\Users\smelt\PycharmProjects\HelloWorld\venv\Scripts\

我正试图按照使用Mosh编程的教程学习Python

我创建了一个程序,它启动并向我打招呼,然后让我在列表中选择一个项目。每个列表项都是本教程介绍的“子程序”。因此,我的程序中有两个子程序:

  • 一个聊天翻译器,应该返回文本,并通过字典将:)和:(转换为表情符号
  • 然后还有一个方形计算器
我面临的问题是,我的聊天翻译器在字典中遇到语法错误。这就是错误发生的地方,在字典第2行的第一个引号处:

C:\Users\smelt\PycharmProjects\HelloWorld\venv\Scripts\python.exe C:/Users/smelt/PycharmProjects/HelloWorld/venv/app.py
  File "C:\Users\smelt\PycharmProjects\HelloWorld\venv\app.py", line 41
    ":(": emoji.emojize(":frowning_face:")
    ^
SyntaxError: invalid syntax
发生错误的部分代码:

def emoji_转换器(消息):
words=message.split(“”)
表情符号={
“:)”:表情符号。表情符号(:笑脸:),
:(:emoji.emojize(:皱眉的脸:)
}
output=“”
用文字表示:
输出+=emojis.get(字,字)+“”
返回输出
这是我的全部代码:

first\u name=“Henrik”
last_name=“Skaaning”
程序_on=True
计算器开=假
表情转换器开=假
def问候用户(名、姓):
#对用户的标准问候语
打印(f“”)Hi{名字}{姓氏}!
欢迎回来!
""")
如果程序打开:
当程序启动时:
问候用户(姓、名)
选择=输入(f“”)这是Henrik Skaaning的培训计划。
请输入一个数字以选择要运行的程序
1:表情转换器
2:方形计算器
输入“退出”退出程序。。。
选择>“”)
如果选择==“1”:
表情转换器开=真
打印(f'Emoji converter on')
当表情转换器打开时:
导入表情符号
def表情转换器(信息):
words=message.split(“”)
表情符号={
“:)”:表情符号。表情符号(:笑脸:),
:(:emoji.emojize(:皱眉的脸:)
}
output=“”
用文字表示:
输出+=emojis.get(字,字)+“”
返回输出
消息=输入(“消息>”)
如果消息!=“帮助”:
如果消息!=“退出”:
打印(表情转换器(信息))
如果消息==“帮助”:
这是一个由Henrik Skaaning开发的简单表情转换器。
在命令行中键入带有表情符号的文本以返回文本和表情符号。
在命令行中键入“help”以返回帮助菜单。
在命令行中键入“quit”退出应用程序。“”
如果消息==“退出”:
表情转换器开=假
打印(f‘表情转换器关闭’)
如果选择==“2”:
计算器开=真
打印(f'平方计算器开')
当计算器打开时:
def方形(编号):
返回整数(数字)*整数(数字)
数字=输入(“命令行>”)
如果数字==“退出”:
程序开启=错误
计算器开=假
打印(f“正在执行”)
如果编号!=“退出”:
如果编号!=“帮助”:
如果number.isnumeric()!=True:
打印(f“对不起!我不明白这是命令”)
如果数字==“帮助”:
这是一个由Henrik Skaaning开发的简单方形计算器。
在命令行中键入一个数字以返回该数字的平方
在命令行中键入“help”以返回帮助菜单。
在命令行中键入“quit”退出应用程序。“”
如果number.isnumeric():
结果=平方(数字)
打印(f'结果为{result}')
如果程序_on==False:
打印(f‘程序关闭’)
打印(完成…)

虽然可以在另一个函数中定义函数,有时使用闭包会使事情变得更简单,但这段代码的主线很长,函数是在While循环中定义的。如果将函数分开编写,则这段代码会更好、更容易理解。否则,正如您现在所知,它可能会很难理解要调试的rd

实际的问题是您混淆了Python
dict
和JSON的语法。
dict
需要符号/值对,而JSON需要字符串/值对

下面是一个为您重新组织的程序。错误未被纠正

first\u name=“Henrik”
last_name=“Skaaning”
程序_on=True
计算器开=假
表情转换器开=假
def表情转换器(信息):
words=message.split(“”)
表情符号={
“:)”:表情符号。表情符号(:笑脸:),
:(:emoji.emojize(:皱眉的脸:)
}
output=“”
用文字表示:
输出+=emojis.get(字,字)+“”
返回输出
def问候用户(名、姓):
#对用户的标准问候语
打印(f“”)Hi{名字}{姓氏}!
欢迎回来!
""")
如果程序打开:
当程序启动时:
问候用户(姓、名)
选择=输入(f“”)这是Henrik Skaaning的培训计划。
请输入一个数字以选择要运行的程序
1:表情转换器
2:方形计算器
输入“退出”退出程序。。。
选择>“”)
如果选择==“1”:
表情转换器开=真
打印(f'Emoji converter on')
当表情转换器打开时:
导入表情符号
消息=输入(“消息>”)
如果消息!=“帮助”:
如果消息!=“退出”:
打印(表情转换器(信息))
如果消息==“帮助”:
这是一个由Henrik Skaaning开发的简单表情转换器。
在命令行中键入带有表情符号t的文本