2016-08-25 3 views
1

정수의 텍스트 파일을 읽고, 목록으로 만들고, 모든 정수의 평균을 계산하고, 음이 아닌 정수의 평균을 계산하고, 인쇄합니다. 최대 및 최소. 모든 정수의 평균을 계산할 수 있었지만 모든 음수가 아닌 정수와 최대 및 최소 평균을 얻는 데 어려움이 있습니다. 숫자가 공간
으로 구분하는 경우
이 매우 짧은 (난 당신의 코드에서 이해하거나, 새로운 선으로,)텍스트 파일에서 음수가 아닌 숫자의 평균 계산하기

file = open("numberlist.txt", "r") 

sum = 0 

list = [] 
for num in file: 
    list.append(num) 

poslist = [] 
for number in file: 
    x = int(number) 
    if x > 0: 
     poslist.append(x) 
     sum += number 
posavg = sum/len(poslist) 
print("The number of non-negative integers is ", len(poslist)) 
print("The average of the non-negtive integers is ", posavg) 

답변

0

과 : 여기

는 내가 지금까지 무엇을 가지고 "Pythonic" 작업! 이전 2 라인 후

with open('numberlist.txt') as f: 
    nums = [int(x) for x in f.read().split() if int(x) >= 0] 

당신이 목록에있는 모든 음이 아닌
번호 nums를 불렀다 :

첫째, 숫자
에 전체 파일을 읽고도 가까운 파일을 자동으로 보자 !

avg = sum(nums)/len(nums) 

을 그리고 최소/최대는 다음과 같습니다 :

이제, 평균이 될 것

minNum, maxNum = min(nums), max(nums) 

을 그리고 그게 다야! 난 당신이
파이썬에서 도약을이 코드를 이해하여, 그래서이 작업에
가능하다고 생각으로

는 지금, 나는 많은 파이썬을 밀어!

0

이 코드의 대부분을 유지하고 아마도 대신에 긍정적이라고한다 (그것에 음이 아닌 부분을 추가 :

file = open("numberlist.txt", "r") 

sum = 0 
nonNegativeTotal = 0 
nonNegativeCount = 0 

list = [] 
for num in file: 
    list.append(num) 

for number in list: 
    x = int(number) 
    if x >= 0: 
     nonNegativeCount += 1 
     nonNegativeTotal += x 
    sum += x 
avg = sum/len(list) 
avgNonNegative = nonNegativeTotal/nonNegativeCount 
print("The number of integers is ", len(list)) 
print("The overall average is ", avg) 
print("The number of non-negative numbers is ", nonNegativeCount) 
print("The non-negative average is ", avgNonNegative) 

list.sort() 
print("The minimum number is ", list[0]) 
print("The maximum number is ", list[-1]) 

당신이 할 수있는 최소 및 최대를 들어 :

minNum, maxNum = min(list), max(list) 
관련 문제