验证它是否是字符串



我做得不对,我不知道该怎么做。

获取用户输入并创建一个主题字符串列表。程序应该要求一个特定的输入主题。用户应该为列表输入字符串,直到满足条件,例如输入特定的单词或字符。不应该有硬编码的列表大小。每个用户输入应该是一个列表元素。

MyList = []
for _ in range(5):
planets = str(input("Enter 5 planets: "))
if planets == str(planets):
if planets not in MyList:
MyList.append(planets)
else:
print("Input not valid")
print("That's your planets: ")
print(str(MyList))

我不太明白。要验证某个东西是否为字符串,应该是isinstance(something, str)。但是输入总是返回一个字符串。不需要做额外的验证。顺便说一下,如果你只想消除重复的项目,我建议使用集合而不是列表。对print()调用str()也是多余的,因为print()会自己完成转换。所以:

print("Enter 5 planets: ")
result = {input(f"{i}) ") for i in range(1, 6)}
print("That's your planets:", ", ".join(result))
MyList = []
for _ in range(5):
planets = input("Enter 5 planets: ")
if type(planets) == str: 
if planets not in MyList: 
MyList.append(planets) 
else: 
print("Input not valid")
print("That's your planets: ")
print(",".join(MyList))

实际上,input()函数定义的任何变量都将始终是str数据类型,因为即使它是一个数字,它仍然是字符串表示在这个数字中。即使用户根本不输入任何值,它仍然是一个空字符串""

我不确定你想对输入做什么样的验证,但如果你想验证它不是一个数字,你可以使用isdigit()string方法。

下面是一个简单的例子:

planets = []
while True:
planet = input("Insert the name of a planet: ")

if planet == 'quit':
break
if not planet.isdigit() and not planet in planets:
planets.append(planet)
print("Here is your list of planets:")
for planet in planets:
print(planet)

这段代码不断提示用户输入planet名称,直到输入关键字quit。如果输入的不是数字,也不在planets列表中,则将其添加。最后,显示了行星的完整列表。

必须指出,在概念层面上,这种实现没有多大意义。更合乎逻辑的做法是列出所有已知的行星,并检查输入的输入是否与列表中的任何条目匹配。在这种情况下,检查字符串是否表示数字变得相当没有意义。

相关内容

  • 没有找到相关文章

最新更新