要注意:有些同学告诉我,我必须使用userInput根据userInput创建另一个列表。 (例如:输入“g”,创建包含以“g”开头的国家/地区的列表。)
这是我目前的代码。
countries = []
population = []
str = []
path = "E:\\SCRIPTING\\Countries.txt"
obj = open(path, "r")
allList = obj.readlines()
obj.close()
userI = input("Please input a single letter: ")
if userI.isalpha():
if len(userI) > 1:
print("Please enter only a single letter.")
else:
print("continue")
elif userI.isdigit():
int(userI)
print("Please enter a single letter, not a number.")
else:
print("Please make sure that you enter a single letter.")
到目前为止,我知道它正在读取我的.txt文件,并在给出错误输入时显示不同的错误/消息。 (程序将被置于else:print(“继续”),因为它的检查点。
该程序只接受1个字母,并打印以该字母开头的所有行。
答案 0 :(得分:1)
您可以在:
之前返回一个带有简单测试的列表print("continue")
您可以添加这些行
listToBeDisplayed = [line for line in allList if line.startswith(userI)]
for line in listToBeDisplayed :
print line
答案 1 :(得分:0)
您实际上并未应用主逻辑,您已完成输入处理,文件正确打开。
你需要:
else:
# Bad variable name, see python.org/dev/peps/pep-0008/#id36
for line in allList
if line.startswith(userI):
print line
elif userI.isdigit():
更新:
在查看更新的代码后,我建议再进行一项更改:
# raw_input() instead of input()
userI = raw_input("Please input a single letter: ")
除此之外,我已经测试了您的代码,并且只要path
指向的文件中有文本数据,它就可以运行。另外注意,startswith
区分大小写,因此请确保将正确的字母表作为文件中的文本。