鱼C论坛

 找回密码
 立即注册
查看: 2194|回复: 5

[已解决]python 30讲(老版) 课后作业4

[复制链接]
发表于 2021-2-8 14:48:52 | 显示全部楼层 |阅读模式
5鱼币
各位大佬,请问为什么会出现这样的情况?

23、24行报错:invalid syntax

30动动手4.png

代码如下:
def key_find(each_line,key,count):
    if count>0:
        t = each_line.index(key)
        position.append(t)
        key_search(each_line[t+len(key):],key,count-1)
        
def result_find(path,each_file,key):
    f = open(path+'\\'+each_file)
    content = []
    for each_line in f:
        content.append(each_line)
    for each_line in content:
        if key in each_line:
            print('在文件【%s】中找到关键字【%s】' %(path+'\\'+each_file,key))
            count = each_line.count(key)
            if count == 1:
                position = each_line.index(key)
                print('关键字出现在第 %d 行,第 %d 个位置' %(content.index(each_line)+1,position))
            else:
                position = []
                key_search(each_line,key,count)
                print('关键字出现在第 %d 行,第 %s 个位置' %(content.index(each_line)+1,str(position))

def goalfile_find(path,key):
    all_file = os.listdir(path)
    print('='*10)
    for each_file in all_file:
        (name,ext)  =  os.path.splitext(path+'\\'+each_file)
        if ext == extension:
            result_find(path,each_file,key)
        if os.path.isdir(path+'\\'+each_file): 
            goalfile_find(path+'\\'+each_file,key)

import os
import os.path

extension = '.txt'

key = input('请将该脚本放于待查找的文件夹内,请输入关键字:')
choose = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' %key)

if choose in ['YES','Yes','yes']:
    path = os.getcwd()
                              
goalfile_find(path,key)               

新手求解答和解决办法,谢谢
最佳答案
2021-2-8 14:48:53
def key_find(each_line,key,count):
    if count>0:
        t = each_line.index(key)
        position.append(t)
        key_search(each_line[t+len(key):],key,count-1)
        
def result_find(path,each_file,key):
    f = open(path+'\\'+each_file)
    content = []
    for each_line in f:
        content.append(each_line)
    for each_line in content:
        if key in each_line:
            print('在文件【%s】中找到关键字【%s】' %(path+'\\'+each_file,key))
            count = each_line.count(key)
            if count == 1:
                position = each_line.index(key)
                print('关键字出现在第 %d 行,第 %d 个位置' %(content.index(each_line)+1,position))
            else:
                position = []
                key_search(each_line,key,count)
                print('关键字出现在第 %d 行,第 %s 个位置' %(content.index(each_line)+1,str(position)))

def goalfile_find(path,key):
    all_file = os.listdir(path)
    print('='*10)
    for each_file in all_file:
        (name,ext)  =  os.path.splitext(path+'\\'+each_file)
        if ext == extension:
            result_find(path,each_file,key)
        if os.path.isdir(path+'\\'+each_file): 
            goalfile_find(path+'\\'+each_file,key)

import os
import os.path

extension = '.txt'

key = input('请将该脚本放于待查找的文件夹内,请输入关键字:')
choose = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' %key)

if choose in ['YES','Yes','yes']:
    path = os.getcwd()
                              
goalfile_find(path,key)               
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 14:48:53 | 显示全部楼层    本楼为最佳答案   
def key_find(each_line,key,count):
    if count>0:
        t = each_line.index(key)
        position.append(t)
        key_search(each_line[t+len(key):],key,count-1)
        
def result_find(path,each_file,key):
    f = open(path+'\\'+each_file)
    content = []
    for each_line in f:
        content.append(each_line)
    for each_line in content:
        if key in each_line:
            print('在文件【%s】中找到关键字【%s】' %(path+'\\'+each_file,key))
            count = each_line.count(key)
            if count == 1:
                position = each_line.index(key)
                print('关键字出现在第 %d 行,第 %d 个位置' %(content.index(each_line)+1,position))
            else:
                position = []
                key_search(each_line,key,count)
                print('关键字出现在第 %d 行,第 %s 个位置' %(content.index(each_line)+1,str(position)))

def goalfile_find(path,key):
    all_file = os.listdir(path)
    print('='*10)
    for each_file in all_file:
        (name,ext)  =  os.path.splitext(path+'\\'+each_file)
        if ext == extension:
            result_find(path,each_file,key)
        if os.path.isdir(path+'\\'+each_file): 
            goalfile_find(path+'\\'+each_file,key)

import os
import os.path

extension = '.txt'

key = input('请将该脚本放于待查找的文件夹内,请输入关键字:')
choose = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' %key)

if choose in ['YES','Yes','yes']:
    path = os.getcwd()
                              
goalfile_find(path,key)               
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 14:51:53 | 显示全部楼层
少打个括号
def key_find(each_line,key,count):
    if count>0:
        t = each_line.index(key)
        position.append(t)
        key_search(each_line[t+len(key):],key,count-1)
        
def result_find(path,each_file,key):
    f = open(path+'\\'+each_file)
    content = []
    for each_line in f:
        content.append(each_line)
    for each_line in content:
        if key in each_line:
            print('在文件【%s】中找到关键字【%s】' %(path+'\\'+each_file,key))
            count = each_line.count(key)
            if count == 1:
                position = each_line.index(key)
                print('关键字出现在第 %d 行,第 %d 个位置' %(content.index(each_line)+1,position))
            else:
                position = []
                key_search(each_line,key,count)
                print('关键字出现在第 %d 行,第 %s 个位置' %(content.index(each_line)+1,str(position)))
def goalfile_find(path,key):
    all_file = os.listdir(path)
    print('='*10)
    for each_file in all_file:
        (name,ext)  =  os.path.splitext(path+'\\'+each_file)
        if ext == extension:
            result_find(path,each_file,key)
        if os.path.isdir(path+'\\'+each_file): 
            goalfile_find(path+'\\'+each_file,key)

import os
import os.path

extension = '.txt'

key = input('请将该脚本放于待查找的文件夹内,请输入关键字:')
choose = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' %key)

if choose in ['YES','Yes','yes']:
    path = os.getcwd()
                              
goalfile_find(path,key)               
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 14:55:31 | 显示全部楼层
楼主粗心了~函数上面那一句打印少了个括号
楼上正确代码
望采纳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-8 20:10:37 | 显示全部楼层

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-8 20:11:40 | 显示全部楼层
青出于蓝 发表于 2021-2-8 14:55
楼主粗心了~函数上面那一句打印少了个括号
楼上正确代码
望采纳

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 03:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表