2017-04-19 2 views
0

안녕하세요, 제가 가지고있는 숙제에 문제가 있습니다. 나는 여러 줄로 작성된 텍스트 파일에 숫자 목록을 가지고있다. 내 프로젝트에서 특정 라인을 선택한 다음 라인 수를 합산하여 선택하도록 요청하고 있습니다. 예를 들어 4 줄에서 다음 4 줄을 합치십시오. 이 내가 지금텍스트의 특정 줄을 읽고 숫자와 다음 줄을 합산하십시오.

fichNbr = open("nombres.txt", "r") 
ligneDepart = int(input("entrer la ligne de depart: ")) 
nb_lignes = int(input("entrer le nombre de ligne a lire: ")) 
somme3 = 0 
for line in fichNbr: 
    line = fichNbr.readline() 
    print(line) 
    for i in range(ligneDepart,(ligneDepart + nb_lignes),1): 
     n = fichNbr.readline().split() 
     for f in n: 
       somme3 += int(f) 
print(somme3) 

답변

0

위해 노력했다 코드입니다 I 해달라고 정말 코드 (미안 분석 종류의 충분한 시간이 그렇게하지 서둘러) 잘못하고되지만 경우 코드 찾고있는 것을 얻을 그런 종류의 당신이 (내 생각) 여기가 필요하지 :

f = open("test.txt", "r") 
start_line = input("line to start ") - 1 
finish_line = input("line to finish ") - 1 
soma = 0 
for i, line in enumerate(f): 
    if i >= start_line and i <= finish_line: 
     soma += int(line) 
print soma 

그냥 빨리 설명, 열거 파일 (F)를 통해 반복하고 (행 번호가 포함 된 튜플을 반환하는 내장 함수입니다 0에서 시작) 및 라인에있는 모든 것. 당신이해야 할 일은 내가 읽고 싶은 줄보다 같거나 더 큰지 그리고 읽는 것을 멈추고 싶은 줄보다 작은 지 확인하는 것입니다.

그것을 :)

+0

1. 내가 –

0

가 지정된 줄에서 (주어진 라인 포함) 모든 라인의 합계를 위해 도움이되기를 바랍니다, 당신은 변수가 그 다음 단지를 사용하는 라인의 배타적 인 경우 1을 뺄 필요 라인 있는 그대로의 변수. with ...를 사용하여 파일을 열면 자동으로 닫히고 read ('r')를 선택합니다. 선을 저장할 변수를 만들고 readlines()를 선택하십시오. 이렇게하면 각 행이 목록의 자체 위치에 저장됩니다.

실제로 행을 합계하는 다른 변수를 만듭니다. 주어진 시작 줄 변수와 관련된 while 루프를 사용하면 목록의 길이보다 작 으면 sum을 사용하여 표시된 것처럼 sum 변수에 각 줄을 추가하는 목록을 반복합니다.

open()이 행을 읽는 방법 때문에 끝에 \ n을 사용하여 문자열을 모두 문자열로 가져옵니다. 스트립 ('\ n')을 추가하여 \ n을 제거하고 정수로 변환하십시오. 루프 변수를 1을 추가하여 루프를 반복하고 종료하십시오.

def example(file_name, line): 
    with open(file_name, 'r') as f: 
     x = f.readlines() 
    line = line - 1 
    nums = 0 
    while line < len(x): 
     nums += int(x[line].strip('\n')) 
     line += 1 
    print(nums) 

example("example.txt", 4) 
# My example.txt file has a different number on each line in this order: 2, 4, 3, 7, 5, 6, 4 

당신이 주어진 라인 다음 줄의 특정 번호를 수행 기능이 추가 번호를 추가, 행 변수에서 1을 뺀 전에이 여분의 변수에 줄 변수를 추가합니다. 목록의 길이를 반복하는 대신 끝에 수정 된 추가 변수를 사용하십시오. 당신이 주어진 라인을 포함하지 않으려면

def example(file_name, line, end_line): 
    with open(file_name, 'r') as f: 
     x = f.readlines() 
    end_line += line 
    line = line - 1 
    nums = 0 
    while line < end_line: 
     nums += int(x[line].strip('\n')) 
     line += 1 
    print(nums) 

example("example.txt", 4, 2) 
# My example.txt file has a different number on each line in this order: 2, 4, 3, 7, 5, 6, 4 

다시,

+0

매우 도움이 감사를 걷어 트라이 것이다 주셔서 감사합니다 빼야하지 않습니다. 희망이 도움이되었습니다. 나는 당신의 코드에 어떤 이슈가 있었는지 확신 할 수 없기 때문에 그것에 대해 언급 할 수는 없지만 "fichNbr = open ("대신에 "open ("nombres.txt ","r " nombres.txt ","r ")"스크립트는 파일을 닫지 않으므로 ... 그대로 .... –

+0

문제가 없습니다 너무 많은 –

+0

이러한 답변 중 하나가 귀하의 질문에 답변 한 경우 답변으로 표시해야합니다. –

관련 문제