编写一个程序,首先读取输入文件的名称,然后读取两个表示搜索范围下限和上限的字符串。应使用 file.readlines() 方法读取文件。输入文件包含按字母顺序排列的十个字母字符串的列表,每个字符串位于单独的行上。您的程序应确定列表中的字符串是否在该范围内(包括边界)并输出结果。
例如:如果输入是:
输入1.txt 氨化的 千年 input1.txt的内容是:
愿望 分类 联邦 毕业 千年 哲学 二次方程 成绩单 荒野 动物学家 输出是:
愿望 - 在范围内 分类 - 在范围内 联邦 - 在范围内 毕业 - 在范围内 千禧年 - 在范围内 哲学-不在范围内 二次方程 - 不在范围内 成绩单 - 不在范围内 荒野 - 不在范围内 动物学家 - 不在范围内 备注:
以换行符结束输出。 所有输入文件都托管在zyLab中,文件名可以直接引用。 input1.txt 可供下载,以便可以看到文件的内容。 在测试中,第一个单词输入始终按字母顺序出现在第二个单词输入之前。
这是我到目前为止的代码,但它没有按字母顺序打印出来。
file_name = input()
lower = input()
upper = input()
user_file = open(file_name)
word_list = user_file.readlines()
new_list = []
bad_list = []
for word in word_list:
word = word.strip('\n')
#
if( word >= lower and word <= upper ):
new_list.append(word)
else:
bad_list.append(word)
for new_word in new_list:
print(new_word, "- in range")
for word in bad_list:
print(word, "- not in range")`
如果您想按字母顺序打印单词,为什么不利用输入文件按字母顺序排列的事实呢?如果我只是使用代码的逻辑并简化它以打印出单词是否在范围内,而我正在迭代单词列表,那么这就满足了字母顺序要求。
file_name = input()
lower = input()
upper = input()
user_file = open(file_name)
word_list = user_file.readlines()
for word in word_list:
word = word.strip('\n')
if word >= lower and word <= upper:
print(word, "- in range")
else:
print(word, "- not in range")