这个函数包含一个文件"file.txt",其中包含文本"Hello World!"我需要做的是打开文件并使用while循环来构建并返回文件中的短语和最后一个单词("World!")x次,在新行上。
while循环是必要的
其他不使用while循环的方法也会有帮助
def echo(fname, x):
fname = open("file.txt",'r')
text = fname.read()
return text
i=1
while i <= x:
return text[:6]
i +=1
这是问题和它应该产生的结果。
编写一个函数,接受一个代表文件名的字符串和一个数字x作为参数。打开文件并使用while循环并返回一个包含文件中的短语和最后一个单词x次的字符串。
def echo(fname, x):
"""
>>>echo("file.txt", 2)
"Hello World!:\nWorld!\nWorld!\n
>>> echo("file.txt", 4)
"Hello World!:\nWorld!\nWorld!\nWorld!\nWorld!\n
"""
假设你的文件总是只有一行:
def echo(filename, repeats):
with open(filename) as f:
txt = f.read() # this is normally ugly, but since we're presupposing
# one-line files, let's run with it....
last_word = txt.split()[-1]
result = "n".join([txt] + [last_word] * repeats)
return result
在这里使用while
循环是愚蠢的。别这么做。
如果你真的需要while循环
def echo(fname, x):
with open(fname) as f:
line = f.readline()
retlst = [line]
i = 0
words = line.split()
while i < x:
retlst.extend(words[-1:])
i += 1
return 'n'.join(retlst)
print echo("filewhl.txt", 3)