0

これが私のコードです(乱雑なコードで申し訳ありません):

def main():
    pass

if __name__ == '__main__':
    main()
from easygui import *
import time
import os
import random
import sys

##multenterbox(msg='Fill in values for the fields.', title=' ', fields=(), values=())
msg = "Enter your personal information"
title = "Credit Card Application"
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)
# make sure that none of the fields was left blank
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
def add(x):
    nl = "\n"
    acc = ".acc"
    xy = x + acc
    exyz = xy
    xyz = exyz
    xxx = str(xyz)
    tf = open('accounts.dat',"a+")
    tf.writelines(nl)
    tf.writelines(xxx)
    tf.close

while 1:
    if fieldValues == None: break
    errmsg = ""
    for i in range(len(fieldNames)-1):
        if fieldValues[i].strip() == "":
            errmsg += ('"%s" is a required field.\n\n' % fieldNames[i])
    if errmsg == "":
        break # no problems found
    fieldValues = multenterbox(errmsg, title, fieldNames, fieldValues)
names = enterbox(msg= ('confirm FIRST name and the FIRST LETTER of the persons LAST name'))
##txt = "acc"
##na = str(name)
##name = (names)

life = ( str(fieldValues))
lifes = life,'\n'
herro = ("Reply was: %s" % str(fieldValues))
correct  = buttonbox(msg=(herro,'\n is that correct'),choices = ('yes','no','cancel'))


if correct == "yes":
    make(names)
    add(names)
elif correct == "no":
    os.system('openacc.py')
    time.sleep(0.5)
    sys.exit()
else:
    os.system('cellocakes-main.py')
    sys.exit()
os.system('cellocakes-main.py')

何が問題なのかわからない ずさんなプログラムで申し訳ありません まだプログラミングに慣れていない私を助けるためのホワイトボードがあります (私はまだ13歳です) 申し訳ありません. 個人的には、問題は def add 領域の構文にあると思いますが、私はまだ新しいので、個人的には問題を見ていません。より経験豊富なプログラマーに助けてもらいたいと思っています。

4

2 に答える 2

1

質問の問題はここにあります:

# 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()

まったく役に立たない。

于 2013-08-04T06:21:25.303 に答える