darchir 发表于 2021-3-9 07:57:15

如何用 input()一次性输入多行字符串?

如何用 input()一次性输入多行字符串?

hrp 发表于 2021-3-9 08:07:19

本帖最后由 hrp 于 2021-3-9 10:03 编辑

print('空行回车结束:')
string = ''
for s in iter(input, ''):
    string += (s+'\n')
print(string)

逃兵 发表于 2021-3-9 08:29:06

string为一个字符串
string = ''
a = input()
while a:
    string +=a
    a = input()
    if a:
      string +='\n'
print(string)


每一行都是一个字符串(string1,string2,string3..)

a = []
string=1
while string:
   string = input()
   if string:
          a.append(string)

for item in range(len(a)):
    exec(f'string{item} = {a}')
    print(eval(f'string{item}'))

darchir 发表于 2021-3-9 09:27:20

hrp 发表于 2021-3-9 08:07


第一个应该是 input吧?

hrp 发表于 2021-3-9 09:52:24

本帖最后由 hrp 于 2021-3-9 10:05 编辑

darchir 发表于 2021-3-9 09:27
第一个应该是 input吧?

不是,第一行就是print提示一下的作用而已,真正读取输入的是for循环内的input。
还有,一楼的回答没测试过写错了,会导致不能退出读取,已经修改为正确答案,实在不好意思{:10_245:}

darchir 发表于 2021-3-10 09:34:03

hrp 发表于 2021-3-9 09:52
不是,第一行就是print提示一下的作用而已,真正读取输入的是for循环内的input。
还有,一楼的回答没 ...

我测试了,加了换行符。谢谢啦

darchir 发表于 2021-3-10 09:36:03

逃兵 发表于 2021-3-9 08:29
string为一个字符串




第一种方法也是要一行一行输入的?

逃兵 发表于 2021-3-10 09:54:08

darchir 发表于 2021-3-10 09:36
第一种方法也是要一行一行输入的?

第一种是输入多行字符串赋值给一个变量string

第二种是输入多行字符串赋值给多个变量,每一行就是string1,string2...

darchir 发表于 2021-3-10 14:07:25

逃兵 发表于 2021-3-10 09:54
第一种是输入多行字符串赋值给一个变量string

第二种是输入多行字符串赋值给多个变量,每一行就是stri ...

受教了,第二种有点看不懂{:5_94:}

逃兵 发表于 2021-3-10 14:43:05

darchir 发表于 2021-3-10 14:07
受教了,第二种有点看不懂

啊哈,代码有错误,只有数字类型的字符串能运行,我修改了一下
a = []
string=1
while string:
   string = input()
   if string:
          a.append(string)

for item in range(len(a)):
    exec(f'string{item} = a')
    print(eval(f'string{item}'))


比如你想生成一些变量,但是具体生成几个还没有想好

测试生成5个变量

abcd
语文
1234
aa123
数学98A

abcd
语文
1234
aa123
数学98A
>>> string0
'abcd'
>>> string1
'语文'
>>> string2
'1234'
>>> string3
'aa123'
>>> string4
'数学98A'
>>> string5
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
    string5
NameError: name 'string5' is not defined

darchir 发表于 2021-3-10 17:34:59

逃兵 发表于 2021-3-10 14:43
啊哈,代码有错误,只有数字类型的字符串能运行,我修改了一下




多谢大神!{:5_111:}
页: [1]
查看完整版本: 如何用 input()一次性输入多行字符串?