Python:遇到换行符时for循环中断

时间:2019-12-11 00:19:53

标签: python-3.x for-loop

我写了一个小脚本,将“`”从多行SQL查询中删除,每次循环到达行尾时,它都会中断。下面是代码,以及我要插入的内容:

inp = input('Enter Query: ')

for s in inp:
    if s != '`':
        print(s, end = '')

输入为:

CREATE TABLE IF NOT EXISTS `mydb`.`Employees` (
  `Employees_PK` INT NOT NULL,
  `Employee_L_NAME` VARCHAR(45) NOT NULL,
  `Employee_F_NAME` VARCHAR(45) NOT NULL,
  `Employees_PHONE` VARCHAR(45) NOT NULL,
  `Employee_EMAIL` VARCHAR(45) NOT NULL,
  `Employee_HIRE_DATE` DATE NOT NULL,
  `Employee_MANAGED_BY` INT NULL,
  PRIMARY KEY (`Employees_PK`))

所以问题是for循环在一行之后中断,仅输出以下内容:

CREATE TABLE IF NOT EXISTS mydb.Employees (

有什么办法可以解决这个问题?保留结构(缩进等)不是必需的,但这会很好

1 个答案:

答案 0 :(得分:0)

因为input()仅占一行。

您会注意到,只需在print()之后添加一个简单的input()

inp = input('Enter Query: ')

print('input check:', inp)

for s in inp:
    if s != '`':
        print(s, end = '')


"""
<Output>
input check: CREATE TABLE IF NOT EXISTS `mydb`.`Employees` (
CREATE TABLE IF NOT EXISTS mydb.Employees (
"""

因此,如果要获取多行输入,请按以下步骤更改:

print("Enter Query: ", end='')

# Get input until have line of texts.
while True:
    inp = input()

    if not inp:
        break

    for s in inp:
        if s != '`':
            print(s, end='')

请检查以下内容:https://stackoverflow.com/a/30239138/7110084