我在python中完成了这个。当我插入一个单词时,它会在一个数字之后重复 例如,如果我插入堆栈,它将打印:
stack 1
stack 2
stack 3
stack 4
stack 5
stack 6
stack 7
stack 8
stack 9
我希望那个python在文件文本中打印名称和数字。我搜索但没有找到任何东西。
代码:
pwd=raw_input("Enter a word:")
n=0
n=str(n)
print (pwd,n)
while n<9:
out_file=open("tesxt.txt","w")
n+=1
out_file.write(pwd)
out_file.write(n)
out_file.close()
我希望那个python写出从循环中生成的单词。 谢谢你的帮助
答案 0 :(得分:0)
首先使用Python 2.7打印而不使用括号:
>>> print "hello world"
hello world
然后你应该在while
循环之外打开文件。
out_file = open("test.txt", "w")
i = 0
while n < 9:
# do something here
out_file.close()
答案 1 :(得分:0)
您的问题在于重新定义n。您以n为整数(n = 0
)开头,然后将其转换为字符串(n = str(n)
)。
试试这个:
pwd = raw_input("Enter a word: ")
n = 0
print("{} {}".format(pwd, n))
with open("test.txt", "w") as out:
while n < 9:
out.write("{} {}\n".format(pwd, n))
n += 1
这应该会给你你期望的输出,因为你永远不会重新定义n。
如果你想同时兼容python 2和3,可以在脚本的顶部添加from __future__ import print_statement
,这样你的print()调用就可以正常工作。
答案 2 :(得分:0)
您有一些错误:
str
对象上+ = 1。这是一个禁忌。尝试利用open
内部使用while循环的上下文管理器。像这样:
pwd = raw_input("Enter a word: ")
with open("tesxt.txt", "w") as fout:
n = 0
while n <= 9: # this will print 0-9. without the =, it will print 0-8
data = "{} {}".format(pwd, n)
print(data)
fout.write("{}\n".format(data))
答案 3 :(得分:0)
pwd = raw_input('输入一个单词:')
n = 0
print pwd,n
用open('tesxt.txt','w')作为out_file:
而n < 9:
n + = 1
out_file.write('{} {} \ n'.format(pwd,n))