|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import os
os.chdir("D:\\编程\\编程垃圾库")
def funchange(first, second, third):
temp2 = list(temp1)
suoyinzhi = temp2.index(':')
if first == 1 and second == 0 and third == 0:
listfen1 = temp2[(suoyinzhi + 1) : ]
result =int(''.join(map(str, listfen1)))
return result
elif first == 0 and second == 0 :
listfen_2 = temp2[(suoyinzhi + 1) : ]
listfen_1 = temp2[ : suoyinzhi]
result1 = int(''.join(map(str, listfen_1)))
result2 = int(''.join(map(str, listfen_2)))
if third == 0:
return result1
elif third == 1:
return result2
elif first == 0 and second == 1 and third == 0:
listfen1 = temp2[ : suoyinzhi]
result = int(''.join(map(str, listfen1)))
return result
list_空 = []
name = input("请输入文件名:")
temp1 = input("请输入需要显示的行数,如 【:21】或【21:】 或 【13:21】 或 【:】:")
f = open(name)
for each_line in f:
list_空.append(each_line)
if temp1[0] not in range(10) and temp1[len(temp1) - 1] in range(10):
print("从开始到第%d行的内容如下:" % (funchange(1, 0, 0))
list_result = list_空[: funchange(1, 0, 0)]
print('\n'.join(map(str, list_result)))
elif temp1[0] in range(10) and temp1[len(temp1) - 1] in range(10):
print("从第%d行到第%d行的内容如下:" % (funchange(0, 0, 0), funchange(0, 0, 1)))
list_result=list_空[funchange(0, 0, 0) - 1, funchange(0, 0, 1)]
print('\n'.join(map(str, list_result)))
elif temp1[0] in range(10) and temp1[len(temp1) - 1] not in range(10):
print("从第%d行到第末尾的内容如下:" % (funchange(0, 1, 0))
list_result=list_空[funchange(0, 1, 0) - 1 : ]
print('\n'.join(map(str, list_result)))
else:
print("全文的内容如下:")
print('\n'.join(map(str, list_空)))
不知道为什么list_result = list_空[: funchange(1, 0, 0)]这一行会出现语法错误,求助
你的代码中有一些错误,我会逐个解释一下。
1. 函数 funchange 被你在后面的代码中使用了,但在你定义这个函数的地方,它试图使用 temp1 这个变量,而这个变量并没有在函数定义的时候作为参数传入。你需要将这个变量作为函数的参数传入。
2. 在这个代码行 if temp1[0] not in range(10) and temp1[len(temp1) - 1] in range(10): 中,你试图将字符串和数字进行比较。这在Python中是不被允许的。你应该先将字符串转换为整数,然后再进行比较。
3. 在你尝试打印列表内容的语句中,如 print('\n'.join(map(str, list_result))) ,由于你的列表中的元素已经是字符串类型,所以不需要再调用 map(str, list_result) 进行转换,直接使用 '\n'.join(list_result) 就可以。
4. 在你的print语句中,你忘记了关闭括号,例如 print("从开始到第%d行的内容如下:" % (funchange(1, 0, 0)) 应该改为 print("从开始到第%d行的内容如下:" % funchange(1, 0, 0)) 。
5. 在这行 list_result=list_空[funchange(0, 0, 0) - 1, funchange(0, 0, 1)] 中,你试图通过一对索引来截取列表,但在Python中,你应该使用 : 而不是 , 来表示范围。这行应该修改为 list_result = list_空[funchange(0, 0, 0) - 1 : funchange(0, 0, 1)] 。
希望这些信息可以帮助你解决问题。如果还有其他问题,欢迎继续提问。
|
|