我是python的新手,当我需要过滤除常规字母以外的所有内容的输入时,我一直在尝试创建一个小的函数来调用。
我已经在部分代码中使用了SO,但是我似乎无法理解为什么它只能在第二次尝试中打印。
这是我的代码:
import re
i=1
def inputFilterText():
inputRaw = input('input: ')
inputFiltered = re.sub('[^a-zA-Z]+', '', inputRaw)
return inputFiltered
while i > 0:
inputFilterText()
print(inputFilterText())
这是我的输出:
我不太确定发生了什么,但是我认为这是一个逻辑错误。我才刚刚开始使用Python,所以对您的帮助表示赞赏。
PS
“ while”仅存在,因此更易于测试,可以省略。
答案 0 :(得分:2)
您两次调用inputFilterText。一次在print()中,一次之前。这导致代码在打印第二个响应之前提示输入两次。
答案 1 :(得分:1)
问题是您两次调用inputFilterText
函数。第一次丢弃输出。导致输入需要两次,但只能显示一次结果。
要解决此问题,请删除inputFilterText()
行。工作代码示例。
import re
i=1
def inputFilterText():
inputRaw = input("input: ")
inputFiltered = re.sub(""[^a-zA-Z]+, "", inputRaw)
return inputFiltered
while i > 0:
print(inputFilterText())
此外,将来请以原始文本而不是屏幕截图的形式发送代码。
答案 2 :(得分:1)
可能我建议在这里使用一个变量,您不会对第一个过滤器调用做任何事情(这就是为什么它第一次询问),而第二个过滤器调用您只是在打印。
ERROR 1932 (42S02): Table 'my_db.my_table' doesn't exist in engine