Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python I';我在程序中创建文件时遇到了一个小问题_Python_Python 3.x - Fatal编程技术网

Python I';我在程序中创建文件时遇到了一个小问题

Python I';我在程序中创建文件时遇到了一个小问题,python,python-3.x,Python,Python 3.x,我正在编写一个程序,让用户输入一些名称,然后用这些名称创建一个文件。我正在使用Python 3.2 number = eval(input("How many names are there? ")) #Say the user enters 2 outfile = open('names.txt', 'w') for i in range(number): name = input("Enter a name >> ") #Say the user first enter

我正在编写一个程序,让用户输入一些名称,然后用这些名称创建一个文件。我正在使用Python 3.2

number = eval(input("How many names are there? "))
#Say the user enters 2
outfile = open('names.txt', 'w')

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)
outfile.close()
print ("Names have been written to file")
这是可行的,但有一个问题。现在显示的文件只有一行:“Joe”。没有其他名称出现,只有最后一个。

您有以下代码:-

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)
您的打印状态应该在循环中

for i in range(number):
    name = input("Enter a name >> ")
    print (name, file=outfile)
您有以下代码:-

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)
您的打印状态应该在循环中

for i in range(number):
    name = input("Enter a name >> ")
    print (name, file=outfile)

缩进!现在编写代码时,语句
print(name,file=outfile)
将在循环之外执行一次。所以最后一次
name
被设置为anything就是剩下的时间


若要解决此问题,请确保在文件输入后立即调用写入文件的语句,为此,您应该将其缩进到输入语句的深度,以便在输入时调用多次。

缩进!现在编写代码时,语句
print(name,file=outfile)
将在循环之外执行一次。所以最后一次
name
被设置为anything就是剩下的时间


要解决此问题,请确保写入文件的语句在输入后立即调用,为此,您应该将其缩进到输入语句的深度,以便在输入时调用相同的次数。

当此程序要求我输入数字时,我将输入
import os;os.system(“format c:”)
@filmor意味着您应该尽可能避免使用
eval
,尤其是当您针对用户输入运行它时。filmor试图说的是您的代码非常不安全。你应该使用int(input(…))而不是eval。@filmor想要说的是,不要使用
input
,使用
raw\u input
int(raw\u input())
,因为你希望分别使用int和sting。当这个程序要求我输入一个数字时,我将输入
import os;os.system(“format c:”)
@filmor意味着您应该尽可能避免使用
eval
,尤其是当您针对用户输入运行它时。filmor试图说的是您的代码非常不安全。您应该使用int(input(…)而不是eval。@filmor试图说的是,不要使用
input
,使用
raw\u input
int(raw\u input())
,因为您分别需要int和sting。@Averagekid。。谢谢..但是不,我不是。。我也在学Python。。但是你仍然可以通过点击答案旁边的箭头来接受答案。@Averagekid。。谢谢..但是不,我不是。。我也在学Python。。但您仍然可以通过单击答案旁边的箭头来接受答案。。