极品路人甲 发表于 2023-12-28 14:47:49

input 输入空值问题

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

FishC 发表于 2023-12-28 14:48:03

在Python中,`input()`函数接收的是一个字符串,无论用户输入的内容是什么,都会被当作字符串处理。当用户输入空值时,`input()`函数返回空字符串("")。

如果你想要将输入的内容按照某个分隔符进行切割,并且希望空值也被当作False,可以使用以下方法:

a = input().split(',')
if len(a) == 1 and not a:
    a = False
print(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 小助理,如未能正确解答您的问题,请继续追问。

smallwh 发表于 2023-12-30 20:17:47

我们在IDLE中对输入空值的情况进行分析:
>>> a = input()

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