这玩意太诡异了
import osos.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 not in range(10) and temp1 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 in range(10) and temp1 in range(10):
print("从第%d行到第%d行的内容如下:" % (funchange(0, 0, 0), funchange(0, 0, 1)))
list_result=list_空
print('\n'.join(map(str, list_result)))
elif temp1 in range(10) and temp1 not in range(10):
print("从第%d行到第末尾的内容如下:" % (funchange(0, 1, 0))
list_result=list_空
print('\n'.join(map(str, list_result)))
else:
print("全文的内容如下:")
print('\n'.join(map(str, list_空)))
不知道为什么list_result = list_空[: funchange(1, 0, 0)]这一行会出现语法错误,求助
在给定的代码中,list_result = list_空[: funchange(1, 0, 0)]这一行出现语法错误的原因是冒号的位置不正确。在切片操作中,冒号用于指定起始和结束位置,但你的代码似乎将冒号放在了索引值后面。
为了解决这个问题,你需要将冒号放在索引值之间,如下所示:
list_result = list_空[:funchange(1, 0, 0)]
这样,你就可以正确地使用切片操作获取list_空列表中从开头到funchange(1, 0, 0)行的内容。
希望这能帮到你!如果你有任何其他问题,请随时提问。 你的代码中有一些错误,我会逐个解释一下。
1. 函数 funchange 被你在后面的代码中使用了,但在你定义这个函数的地方,它试图使用 temp1 这个变量,而这个变量并没有在函数定义的时候作为参数传入。你需要将这个变量作为函数的参数传入。
2. 在这个代码行 if temp1 not in range(10) and temp1 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_空 中,你试图通过一对索引来截取列表,但在Python中,你应该使用 : 而不是 , 来表示范围。这行应该修改为 list_result = list_空 。
希望这些信息可以帮助你解决问题。如果还有其他问题,欢迎继续提问。 从你的代码和问题描述来看,我注意到在以下几行中,你打印了一个字符串,但是在调用`print`函数后的括号没有正确地关闭。
print("从开始到第%d行的内容如下:" % (funchange(1, 0, 0))
print("从第%d行到第末尾的内容如下:" % (funchange(0, 1, 0))
在上面的两行中,你打开了两个括号(一个是`print`函数的括号,一个是字符串格式化的`%`操作符的括号)但只关闭了一个。这可能是导致语法错误的原因。
你需要在`funchange(1, 0, 0)`和`funchange(0, 1, 0)`后面添加一个括号来关闭`%`操作符的括号。修正后的代码如下:
print("从开始到第%d行的内容如下:" % (funchange(1, 0, 0)))
print("从第%d行到第末尾的内容如下:" % (funchange(0, 1, 0)))
这样应该可以解决你遇到的问题。
求最佳答案{:10_254:} 我不理解为什么每次最佳都给isdkz
页:
[1]