可能是重复但是15分钟后我无法找到问题的答案,可能是我的编码术语很差。
我错误地传递我的论点的逻辑是什么?请不要惩罚我的选择代码本身,我不是很擅长这个,我知道。
该计划应该:
项目(a)和(b)应由创建集合的函数产生;每个人都应该有一个单独的功能。 顺便说一句,它以某种方式帮助文件1:
文件2是:
"现在是参加聚会的时候了。"
def main():
file1()#obtain file1 uniquness
file2()#obtain file2 uniqueness
print("C) Words that appear in both files: "+str(set_1&set_2)+'\n')#addd them
print("D) Unique words that appear in either file: "+str(set_1|set_2)+'\n')
print("E) Words that appear in file1 but not file2: "+str(set_1-set_2)+'\n') #subtract words found in 2 from 1
print("F) Words that appear in file2 but not file1: "+str(set_2-set_1)+'\n')
print("G) Words that appear in either file but not both: "+str(set_1^set_2)+'\n')
def file1():
file_1=open('file1.txt', 'r')
file_1=file_1.readline()
setlist_1=file_1.split()#convert file 1
set_1=set()
for word in setlist_1:
word=word.lower()
word=word.rstrip("\n")#process uniqueness
set_1.add(word)
print("A) Unique words in file1: "+str(set_1)+'\n')#print A
return set_1
def file2():
file_2=open('file2.txt','r')
file_2=file_2.readline()#convert file 2
setlist_2=file_2.split()
set_2=set()
for words in setlist_2:
words=words.lower()#process uniqueness
words=words.rstrip("\n")
set_2.add(words)
print("B) Unique words in file2: "+str(set_2)+'\n')#print B
return set_2
main()
答案 0 :(得分:2)
您在file1
和file2
函数中使用的变量对于其他函数是不可见的,因此它们可以使用相同的名称用于略微不同的目的而不会相互干扰。这意味着您的main
函数无法从这些函数中看到set_1
和set_2
。好消息是你已经发生了将这些对象交还给调用函数的方法:使用return
。你正好在这两个函数中使用它,你只需要在main
中将它链接起来 - 函数调用就会计算出函数返回的值,所以要让它工作,你只需要这样做:
set_1 = file1()
set_2 = file2()
您可以随意调用这两个变量 - 它们不需要与函数内return
变量的名称相匹配。