当前位置: 首页 > 面试题库 >

命令行输入导致SyntaxError

徐洛华
2023-03-14
问题内容

我有一个简单的Python问题,我的大脑停滞不前。此代码段有效。但是,当我用phoneNumber替换“ 258 494-3929”时,出现以下错误:

# Compare phone number  
 phone_pattern = '^\d{3} ?\d{3}-\d{4}$'

 # phoneNumber = str(input("Please enter a phone number: "))

 if re.search(phone_pattern, "258 494-3929"):  
        print "Pattern matches"  
  else:  
        print "Pattern doesn't match!"
 Pattern does not match  
 Please enter a phone number: 258 494-3929  
 Traceback (most recent call last):  
    File "pattern_match.py", line 16, in <module>  
      phoneNumber = str(input("Please enter a phone number: "))  
    File "<string>", line 1  
      258 494-3929  
          ^
  SyntaxError: invalid syntax

   C:\Users\Developer\Documents\PythonDemo>

顺便说一句,我没有import re和尝试使用rstrip的情况下\n

我还能缺少什么?


问题答案:

您应该使用raw_input而不是input,而不必调用str,因为此函数本身返回一个字符串:

phoneNumber = raw_input("Please enter a phone number: ")


 类似资料:
  • 如果表达式无法在一行输入完,用三点"…"加回车键表示下一行继续该语句的输入.例如: s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ... - 1/8 + 1/9 - 1/10 + 1/11 - 1/12; "=","+"和"-"符号前后的空格可以省略,但使用可以增加易读性.

  • 我正在写一个不和谐机器人游戏,我的问题是玩家必须创造一个角色。然而,每个标准的人都有名字和姓氏,但我在一个命令中接受其他输入。我的问题是,我不确定我的代码是否会在确实放置引号的情况下忽略名称周围的引号。 假设有人给他们的角色命名为乔·什莫。当他们输入命令时,我担心我的参数解释器可能会将“Joe”作为args[0],“Shmoe”作为args[1],将Male作为args[2],将38作为args[

  • 问题内容: 我一直在使用psql Postgres终端使用以下命令将CSV文件导入表中 除了必须登录到psql终端以运行它之外,该方法运行良好。 我想知道是否有人从Linux shell命令行中知道执行类似于此命令的方法的方法,类似于Postgres如何允许像下面这样的shell命令 这允许从Linux Shell中转储数据库而无需登录到psql终端。 问题答案: 如PostgreSQL文档(II

  • 问题内容: 我知道命令行界面(例如Git等)能够隐藏用户的输入(对于密码有用)。有没有办法用Java编程地做到这一点?我正在从用户那里输入密码,我希望他们的输入在该特定行(而不是所有用户)上被“隐藏”。这是我的代码(尽管我怀疑这会有所帮助…) 问题答案: 尝试。不过,您至少必须运行Java 6。 请注意,这不适用于Eclipse控制台。您必须从 真实的 console / shell / term

  • 对于需要自动生成图表、纯后端生成图表图片、批量生成图表的情况,Nodejs 导出服务器可以满足这些需求。 一、安装 Nodejs 导出服务器 请参考 搭建导出服务器 进行安装,简单来说有两种安装方式 1、直接安装 npm 包 npm install highcharts-export-server -g 2、源代码安装 git clone https://github.com/highchart

  • 问题内容: 我有一个系统,需要从几个不同的进程接收输入。最简单的只是命令行,用户可以在其中手动输入数据。这些数据将添加到并由主流程稍后处理,但我还没有走那么远;在进程内部调用似乎不起作用。我抽出了代码的精髓,下面是一个示例: 这个简单的代码抛出了这一点: 如何在Python的进程中获取命令行输入? 问题答案: 当您在Python中生成线程时,它将关闭stdin。您不能使用子流程来收集标准输入。使用