鱼C论坛

 找回密码
 立即注册
查看: 1367|回复: 2

[已解决]input 输入空值问题

[复制链接]
发表于 2023-12-28 14:47:49 | 显示全部楼层 |阅读模式

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

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

x
a=input()
输入空值
print(bool(a))
False
print(len(a))
0

但是加上split()
a = input().split(',')
输入空值
print(bool(a))
True
print(len(a))
1

请问有什么办法能加上split()但是input空值是False呢
或者有没有其他方法可以input多个值且input空值为False
最佳答案
2023-12-30 20:17:47
我们在IDLE中对输入空值的情况进行分析:
>>> a = input()

>>> a#返回空字符串
''
>>> a.split(',')#返回一个列表,其元素是空字符串
['']
所以加上split()时,input空值可以通过以下表达式转化为False:
#a=input()
a != ['']
当输入为空时返回False,否则返回True

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-28 14:48:03 | 显示全部楼层
在Python中,`input()`函数接收的是一个字符串,无论用户输入的内容是什么,都会被当作字符串处理。当用户输入空值时,`input()`函数返回空字符串("")。

如果你想要将输入的内容按照某个分隔符进行切割,并且希望空值也被当作False,可以使用以下方法:
a = input().split(',')if len(a) == 1 and not a[0]:    a = Falseprint(bool(a))print(len(a))
这样,当用户输入一个非空值时,`a`会成为一个包含该非空值的列表;而当用户输入为空值时,`a`会被赋值为False,同时`bool(a)`会返回False。这种判断方式适用于只输入一个值的情况。

如果你要求用户输入多个值,可以使用循环,并将用户输入的每个值追加到一个列表中。当用户输入空值时,循环结束。
a = []while True:    value = input()    if not value:        break    a.append(value)print(a)
这样,无论用户输入多少个值,只要最后输入一个空值,循环就会结束,将所有输入的值存储在列表`a`中。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-30 20:17:47 | 显示全部楼层    本楼为最佳答案   
我们在IDLE中对输入空值的情况进行分析:
>>> a = input()

>>> a#返回空字符串
''
>>> a.split(',')#返回一个列表,其元素是空字符串
['']
所以加上split()时,input空值可以通过以下表达式转化为False:
#a=input()
a != ['']
当输入为空时返回False,否则返回True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 15:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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