请允许有人帮我整理这段代码,因为我是python的新手,我认为我没有以最有效的方式编写它:
elif choice == "2":
birthday = input("Which birthday month do you require?e.g. /10/ : ")
for line in searchfile:
if birthday in line:
print (line)
searchfile.close
答案 0 :(得分:1)
三个提示:
通常使用raw_input
代替input
更安全,因为后者在将输入传递给代码之前对其进行评估,因此允许执行任意代码。
如果' 10'在文件中,那么' 1',所以如果有人搜索了1月(' 1'),他们会找到1月,10月,11月和12月的生日。也许你可以在数据文件中拼出出生月份?
如果你只是打开搜索文件来读取生日数据,请等到你在if
语句中打开它,然后用with
语句打开它以无形地关闭它
我会用以下方式编写代码:
elif choice == '2':
birthday = raw_input("Which birthday month do you require? e.g. January: ")
for line in searchfile:
if birthday in line:
print(line)
searchfile.close()
注意:print(line)
适用于Python 2.x和Python 3.x。