如何从特定项目的输入中打印列表
How to print list from input with specific items
如何使用带有特定项目的输入打印列表?例如,名称以 x 结尾。
我有这个代码
while True:
name = input("Enter your name: ")
if name == "":
break
list = []
namex = name.endswith("x")
if name == namex:
list.append(name)
print (list)
但是当我尝试打印列表时,它什么也没给我:
>>> Enter your name: alex
Enter your name: james
Enter your name: abcx
Enter your name:
>>>
你的问题是 namex 是 boolean, not a string.
>>> 'abc'.endswith("x")
False
>>> 'abcx'.endswith("x")
True
这意味着字符串和布尔值之间的任何相等比较都将 return 为假。如果语句以 "x" 结尾,或者:
,则您想触发 "if" 语句
names = []
while True:
name = input("Enter your name: ")
if name == "":
break
namex = name.endswith("x")
# namex is a boolean type, which if it is True, will trigger an if statement
if namex:
names.append(name)
print(names)
namex = name.endswith("x")
if name == namex:
并不像您认为的那样。 name.endswith("x")
returns True
或 False
。应该是
if name.endswith("x"):
相反。
names = []
while True:
name = input("Enter your name: ")
if name == "":
break
if name.endswith("x"):
names.append(name)
print (names)
列表理解iter
版本:
>>> [name for name in iter(input, '') if name.endswith('x')]
dsf
sdfdsf
dsffdx
sx
['dsffdx', 'sx']
在这里,我将所有以'x'结尾的名称存储在namex_list
中,而不是使用您之前使用的list
(也是一个内置变量)变量。
此外,我在 while 条件之前将 namex_list
分配为一个空列表,并在 while
之外的末尾打印 namex_list
。
namex_list = []
while True:
name = input("Enter your name: ")
if name == "":
break
if name.endswith("x"):
namex_list.append(name)
print (namex_list)
此外,name == namex
不会检查您要实现的目标,因为字符串值和布尔值之间存在比较。
例如:
>>> name1 = 'abc'
>>> name2 = 'abcx'
>>> namex1 = name1.endswith('x')
>>> namex2 = name2.endswith('x')
>>> namex1
False
>>> namex2
True
>>> name1 == namex1
False
>>> name2 == namex2
False
您应该使用 if
来实现您在上面的代码中想要实现的目标:
if name.endswith("x"):
如何使用带有特定项目的输入打印列表?例如,名称以 x 结尾。 我有这个代码
while True:
name = input("Enter your name: ")
if name == "":
break
list = []
namex = name.endswith("x")
if name == namex:
list.append(name)
print (list)
但是当我尝试打印列表时,它什么也没给我:
>>> Enter your name: alex
Enter your name: james
Enter your name: abcx
Enter your name:
>>>
你的问题是 namex 是 boolean, not a string.
>>> 'abc'.endswith("x")
False
>>> 'abcx'.endswith("x")
True
这意味着字符串和布尔值之间的任何相等比较都将 return 为假。如果语句以 "x" 结尾,或者:
,则您想触发 "if" 语句names = []
while True:
name = input("Enter your name: ")
if name == "":
break
namex = name.endswith("x")
# namex is a boolean type, which if it is True, will trigger an if statement
if namex:
names.append(name)
print(names)
namex = name.endswith("x")
if name == namex:
并不像您认为的那样。 name.endswith("x")
returns True
或 False
。应该是
if name.endswith("x"):
相反。
names = []
while True:
name = input("Enter your name: ")
if name == "":
break
if name.endswith("x"):
names.append(name)
print (names)
列表理解iter
版本:
>>> [name for name in iter(input, '') if name.endswith('x')]
dsf
sdfdsf
dsffdx
sx
['dsffdx', 'sx']
在这里,我将所有以'x'结尾的名称存储在namex_list
中,而不是使用您之前使用的list
(也是一个内置变量)变量。
此外,我在 while 条件之前将 namex_list
分配为一个空列表,并在 while
之外的末尾打印 namex_list
。
namex_list = []
while True:
name = input("Enter your name: ")
if name == "":
break
if name.endswith("x"):
namex_list.append(name)
print (namex_list)
此外,name == namex
不会检查您要实现的目标,因为字符串值和布尔值之间存在比较。
例如:
>>> name1 = 'abc'
>>> name2 = 'abcx'
>>> namex1 = name1.endswith('x')
>>> namex2 = name2.endswith('x')
>>> namex1
False
>>> namex2
True
>>> name1 == namex1
False
>>> name2 == namex2
False
您应该使用 if
来实现您在上面的代码中想要实现的目标:
if name.endswith("x"):