鱼C论坛

 找回密码
 立即注册
查看: 3382|回复: 10

[已解决]如何用 input()一次性输入多行字符串?

[复制链接]
发表于 2021-3-9 07:57:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如何用 input()一次性输入多行字符串?
最佳答案
2021-3-9 08:07:19
本帖最后由 hrp 于 2021-3-9 10:03 编辑
print('空行回车结束:')
string = ''
for s in iter(input, ''):
    string += (s+'\n')
print(string)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-9 08:07:19 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrp 于 2021-3-9 10:03 编辑
print('空行回车结束:')
string = ''
for s in iter(input, ''):
    string += (s+'\n')
print(string)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[item]}')
    print(eval(f'string{item}'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-9 09:27:20 | 显示全部楼层

第一个应该是 input吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-9 09:52:24 From FishC Mobile | 显示全部楼层
本帖最后由 hrp 于 2021-3-9 10:05 编辑
darchir 发表于 2021-3-9 09:27
第一个应该是 input吧?


不是,第一行就是print提示一下的作用而已,真正读取输入的是for循环内的input。
还有,一楼的回答没测试过写错了,会导致不能退出读取,已经修改为正确答案,实在不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我测试了,加了换行符。谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-10 09:36:03 | 显示全部楼层
逃兵 发表于 2021-3-9 08:29
string为一个字符串

第一种方法也是要一行一行输入的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-10 09:54:08 | 显示全部楼层
darchir 发表于 2021-3-10 09:36
第一种方法也是要一行一行输入的?

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

第二种是输入多行字符串赋值给多个变量,每一行就是string1,string2...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-10 14:07:25 | 显示全部楼层
逃兵 发表于 2021-3-10 09:54
第一种是输入多行字符串赋值给一个变量string

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

受教了,第二种有点看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[item]')
    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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-10 17:34:59 | 显示全部楼层
逃兵 发表于 2021-3-10 14:43
啊哈,代码有错误,只有数字类型的字符串能运行,我修改了一下

多谢大神!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 08:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表