Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 为什么我的程序会将(';';,';)添加到我的文件名中?_Python_Python 3.x - Fatal编程技术网

Python 为什么我的程序会将(';';,';)添加到我的文件名中?

Python 为什么我的程序会将(';';,';)添加到我的文件名中?,python,python-3.x,Python,Python 3.x,这是我的代码(很抱歉代码太乱): 我不知道问题是什么,我也很抱歉它的编程太草率了我有一块白板来帮助我解决编程的新问题(我才13岁)抱歉。我个人认为问题出在def add区域的语法上,但由于我还是新手,我个人没有看到这个问题,我希望有一位更有经验的程序员帮助我解决。问题出在这里: # assign the tuple (x, ".acc") to xys xys = x,".acc" # now xyzasd is the tuple converted to a string, thus #

这是我的代码(很抱歉代码太乱):


我不知道问题是什么,我也很抱歉它的编程太草率了我有一块白板来帮助我解决编程的新问题(我才13岁)抱歉。我个人认为问题出在def add区域的语法上,但由于我还是新手,我个人没有看到这个问题,我希望有一位更有经验的程序员帮助我解决。

问题出在这里:

# assign the tuple (x, ".acc") to xys 
xys = x,".acc"

# now xyzasd is the tuple converted to a string, thus
# making the name of your file into '("content of x", ".acc")'
xyzasd = str(xys)

# and open file named thus
tf = open(xyzasd,'a+')
你想做的是:

# use proper variable and function names!
def make_account(account):
    filename = account + '.acc'
    the_file = open(filename, 'a+')
    ....
另一方面,代码还有其他问题,例如

def main():
    pass

if __name__ == '__main__':
    main()

完全没有用。

问题在于:

# assign the tuple (x, ".acc") to xys 
xys = x,".acc"

# now xyzasd is the tuple converted to a string, thus
# making the name of your file into '("content of x", ".acc")'
xyzasd = str(xys)

# and open file named thus
tf = open(xyzasd,'a+')
你想做的是:

# use proper variable and function names!
def make_account(account):
    filename = account + '.acc'
    the_file = open(filename, 'a+')
    ....
另一方面,代码还有其他问题,例如

def main():
    pass

if __name__ == '__main__':
    main()

完全没有用。

这是一个不直接回答你问题的答案

唉,注释字段仍然不能保存格式化代码,所以我选择这种方式

这是一个很好的编码模式,但您使用它的方式毫无用处

如果它是作为模块导入的,而不是作为脚本执行的,则应该防止执行

尽管如此,始终使用它并不是坏事,而是将代码放在
main()
函数中,而不是将其添加到下面

fieldNames = ["First name",'Last name','email',"Street Address","City","State","ZipCode",'phone','phone 2)']
有一个
太多了

fieldValues = []  # we start with blanks for the values
fieldValues = multenterbox(msg,title, fieldNames)
第二行使第一行无效,因为在这两行之间不使用
fieldValues

如果您希望
multenterbox()
失败并且希望将
[]
作为默认值,则情况会有所不同

def make(x):
    xys = x,".acc"
    xyzasd = str(xys)
    tf = open(xyzasd,'a+')
    tf.writelines(lifes)
    tf.writelines("\n")
    tf.writelines("credits = 0")
    tf.close
您已经被告知:
x,“.acc”
创建一个元组,而不是字符串。要创建字符串,请使用
x+“.acc”

此外,您的
close
调用不是调用,因为它缺少
()
。这个函数只引用函数并忽略值

更好的编写方法是(请适当命名变量)

with语句会自动关闭文件,即使发生错误也是如此

此外,您使用的
writelines()
错误:它是正确的,并将每个元素写入文件。由于它没有在两者之间添加换行符,因此结果看起来是一样的,。但在您的情况下,它会分别写入每个字节,这使得它的效率有点低

此外,您可以从函数中访问全局变量
lifes
。只有在绝对必要的情况下,你才应该这样做

def add(x):
这里的评论与上面相同,加上

xy = x + acc
exyz = xy
xyz = exyz
xxx = str(xyz)
为什么?只需使用
xy
;这两个赋值没有任何用处,
str()
调用也没有用处,因为您已经有了一个字符串

for i in range(len(fieldNames)-1):
    if fieldValues[i].strip() == "":
        errmsg += ('"%s" is a required field.\n\n' % fieldNames[i])
更好:

for name, value in zip(fieldNames, fieldValues):
    if not value.strip(): # means: empty
        errmsg += '"%s" is a required field.\n\n' % name
然后:

从列表中生成字符串

lifes = life,'\n'
从这两个字符串生成一个元组

os.system('openacc.py')

os.system('cellocakes-main.py')

请不要使用
os.system()
;它已被弃用。更好地使用。

这是一个不直接回答您问题的答案

唉,注释字段仍然不能保存格式化代码,所以我选择这种方式

这是一个很好的编码模式,但您使用它的方式毫无用处

如果它是作为模块导入的,而不是作为脚本执行的,则应该防止执行

尽管如此,始终使用它并不是坏事,而是将代码放在
main()
函数中,而不是将其添加到下面

fieldNames = ["First name",'Last name','email',"Street Address","City","State","ZipCode",'phone','phone 2)']
有一个
太多了

fieldValues = []  # we start with blanks for the values
fieldValues = multenterbox(msg,title, fieldNames)
第二行使第一行无效,因为在这两行之间不使用
fieldValues

如果您希望
multenterbox()
失败并且希望将
[]
作为默认值,则情况会有所不同

def make(x):
    xys = x,".acc"
    xyzasd = str(xys)
    tf = open(xyzasd,'a+')
    tf.writelines(lifes)
    tf.writelines("\n")
    tf.writelines("credits = 0")
    tf.close
您已经被告知:
x,“.acc”
创建一个元组,而不是字符串。要创建字符串,请使用
x+“.acc”

此外,您的
close
调用不是调用,因为它缺少
()
。这个函数只引用函数并忽略值

更好的编写方法是(请适当命名变量)

with语句会自动关闭文件,即使发生错误也是如此

此外,您使用的
writelines()
错误:它是正确的,并将每个元素写入文件。由于它没有在两者之间添加换行符,因此结果看起来是一样的,。但在您的情况下,它会分别写入每个字节,这使得它的效率有点低

此外,您可以从函数中访问全局变量
lifes
。只有在绝对必要的情况下,你才应该这样做

def add(x):
这里的评论与上面相同,加上

xy = x + acc
exyz = xy
xyz = exyz
xxx = str(xyz)
为什么?只需使用
xy
;这两个赋值没有任何用处,
str()
调用也没有用处,因为您已经有了一个字符串

for i in range(len(fieldNames)-1):
    if fieldValues[i].strip() == "":
        errmsg += ('"%s" is a required field.\n\n' % fieldNames[i])
更好:

for name, value in zip(fieldNames, fieldValues):
    if not value.strip(): # means: empty
        errmsg += '"%s" is a required field.\n\n' % name
然后:

从列表中生成字符串

lifes = life,'\n'
从这两个字符串生成一个元组

os.system('openacc.py')

os.system('cellocakes-main.py')

请不要使用
os.system()
;它已被弃用。更好地使用。

程序在哪里添加了什么?当您使用
如果uuuu name uuuu=='\uuuuu main uuu'
,您应该将导入、类定义和函数定义以外的所有内容都放在
main
中。当你的代码作为模块导入时,应该防止它被视为脚本。请正确命名你的变量和函数,否则当你30岁时,看看你13岁时写的代码,你会感到非常羞愧,请相信我-曾经出现过:dw程序在哪里添加了什么?当您使用
时,如果uuuu name uuuu=='\uuuuuu main uuuu'
,您应该将除了导入、类定义和函数定义之外的所有内容都放在
main
中。当你的代码作为一个模块导入时,它应该防止你的代码被视为脚本。请正确命名你的变量和函数,否则当你30岁的时候,看看你13岁时写的代码,你会为自己感到非常羞愧,相信我-去过那里:谢谢,先生,我很抱歉