我刚刚为我的python类完成了我的作业,由于某种原因它无法在CDM中打开。当我处于空闲模式时,它会打开并运行正常。我的朋友代码与我的相同,但他可以在CDM中运行。我的开放和崩溃真的很快。我认为这是我的主要内容,因为如果它是我的其他功能,我将能够通过第一个输入。我和我的朋友查看我的代码并发现没有错,并且混淆了为什么会发生这种情况。因为我们是电脑新手我虽然我会把它带到这里,是的,我的第一个帖子哈哈。有人可以帮我找到我的错误吗?
#Allen
#CSC 110.09
#11/15/2014
#Home Work 8
def main(): #main
#The following should be displayed in the read file
#introduction
print('This program reads data from a file, calculate the statistics and then write the results to another file.')
print()
print('THIS PROGRAM WILL FIND:')
print()
print('• number of characters')
print('• number of letters')
print('• number of consonants')
print('• number of digits')
print('• number of white-space')
print('• number of word characters')
print('• number of punctuation characters')
print()
#flag
error_loop = False #making a loop so the user enter a valid file
while error_loop == False:
try:
original_file = input('Enter a file name: ') #user input a file to read
print()
old_file = open(original_file, 'r')
except Exception as nope:
print(original_file, 'not found. Please try again', nope)
print()
found = False
else:
error_loop = True
try:
characters_count = 0 #set counting to 0
letters_count = 0 #set counting to 0
consonants_count = 0 #set counting to 0
digits_count = 0 #set counting to 0
whitespaces_count = 0 #set counting to 0
wordcharacters_count = 0 #set counting to 0
punctuation_count = 0 #set counting to 0
#reading the file
read_file = old_file.read()
#counting the stats
while read_file != '':
#counting the characters
characters_count += characters(read_file)
#counting the letters
letters_count += letters(read_file)
#counting the consonants
consonants_count += consonants(read_file)
#counting digits
digits_count += digits(read_file)
#counting white spaces
whitespaces_count += whitespaces(read_file)
#counting word characters
wordcharacters_count += wordcharacters(read_file)
#counting punctuations
punctuation_count += punctuation(read_file)
#read the file again
read_file = old_file.read()
except Exception as nope:
print()
print(nope)
else:
#making the new file
new_file_name = input("please enter a new file name: ") #user can rename the new file
new_file = open(new_file_name + ".txt",'w') #call the new file
new_file.write('Statistics for ')
new_file.write(original_file)
new_file.write(':\n')
new_file.write('\tCharacters: ')
new_file.write(str(characters_count)+'\n')
new_file.write('\tLetters: ')
new_file.write(str(letters_count)+'\n')
new_file.write('\tConsonants: ')
new_file.write(str(consonants_count)+'\n')
new_file.write('\tDigits: ')
new_file.write(str(digits_count)+'\n')
new_file.write('\tSpaces: ')
new_file.write(str(whitespaces_count)+'\n')
new_file.write('\tWord characters: ')
new_file.write(str(wordcharacters_count)+'\n')
new_file.write('\tPunctuation:')
new_file.write(str(punctuation_count)+'\n')
finally:
#closes the file
old_file.close()
new_file.close()
print()
print("we have created a new file called", new_file_name)
def characters(characters): #function 1
return len(characters) #length of characters
def letters(letter): #function 2
letters_total = 0
letters = ['A', 'B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q',\
'R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h',\
'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
#list of the alphabeth
for line in letter:
if line in letters:
letters_total += 1
return letters_total
def consonants(consonant): #function 3
consonants_total = 0
consonants = ['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V',\
'W','X','Y','Z','b','c','d','f','g','h','j','k','l','m','n','p','q',\
'r','s','t','v','w','x','y','z'] #list of consonats
for line in consonant:
if line in consonants:
consonants_total += 1
return consonants_total
def digits(digit): #function 4
digits_total = 0
digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'] #list of numbers
for line in digit:
if line in digits:
digits_total += 1
return digits_total
def whitespaces(whitespace): #function 5
whitespaces_total = 0
search = ' ' # space
for line in whitespace:
if line == search:
whitespaces_total += 1
return whitespaces_total
def wordcharacters(wordcharacter): #function 6
wordcharacters_total = 0
wordcharacters = ['@','#','$','%','&','+','-','=','<','>','*','/'] #list of word characters
for line in wordcharacter:
if line in wordcharacters:
wordcharacters_total += 1
return wordcharacters_total
def punctuation(punctuations): #function 7
punctuation_total = 0
punctuation = ['!','~','`','^','(',')','_','{','}',\
'[',']','|','\\',';',':','"',"'",',','.','?'] #list of punctuation
for line in punctuations:
if line in punctuation:
punctuation_total += 1
return punctuation_total
main() #Call out main
答案 0 :(得分:0)
问题出在def main():block之后的缩进中。
你有......
def main(): #main
#The following should be displayed in the read file
#introduction
print('This program reads data from a file, calculate the statistics and then write the results to another file.')
print()
print('THIS PROGRAM WILL FIND:')
...
您应该拥有的是在定义main()方法后缩进的那些print语句。像这样......
def main():
print('indent after definition is started like this')
这是否是您代码的唯一问题,我不知道。如果您有更多问题,请尝试更改并返回。