【问题标题】:Input in python on more than one line在多行的python中输入
【发布时间】:2015-03-09 23:07:13
【问题描述】:

这是我的代码

fw = open('input.txt', 'w')
fw.write(input())
fw.close()
fr = open('input.txt', 'r')
for y in fr:
    print(y)
fr.close()

当用户写入文件时。他怎么能到下一行呢?

每当我按 Enter 时,它只接受一行,不会转到下一行。

示例: 当我运行这段代码时,我输入

1 2 3 4

输出与输入相同。 但我希望它写成

1
2
3
4

在 input.txt 文件中。

我尝试了以下方法,但没有成功。

  1. fw.write(input() + "\n")
  2. fw.write(input("\n")

【问题讨论】:

    标签: python file python-3.x input user-input


    【解决方案1】:

    你需要一个循环。试试这个:

    fw = open('input.txt', 'w')
    while 1:
        info = input('enter stop to stop:')
        if info == 'stop':
            break
        fw.write(info)
    
    fw.close()
    fr = open('input.txt', 'r')
    
    for y in fr:
        print(y, end='')
    fr.close()
    

    【讨论】:

    • 你也可以使用for y in fr
    【解决方案2】:

    每当我按 Enter 时,它只接受一行,不会转到下一行。

    是的,input 只接受 1 行作为输入。

    您可以使用loop 直到给出特定响应,或者使用split 拆分您的输入,然后将列表中的每个项目写在新的一行:

    fw.write('\n'.join(input().split(' ')))
    

    userInput = input()
    for line in userInput.split(' '):
        fw.write(line)
    

    【讨论】:

    • 您可以使用.split() 而不是.split(' ') 来允许任意空格,例如制表符('\t')。您应该在第二个代码示例中附加 '\n' 或使用 print(line, file=fw)
    【解决方案3】:

    将输入字符串中的每个空格分隔的项目打印在自己的行上:

    print(*input().split(), sep='\n', file=fw)
    

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2011-03-05
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      相关资源
      最近更新 更多