python-for-everybody icon indicating copy to clipboard operation
python-for-everybody copied to clipboard

Question changed on Coursera

Open dpungaliya opened this issue 5 years ago • 4 comments

Hey,the new question of assignment 7.2(coding qs) demands us to do the same,but without using the sum() function. This is the exact qs: 7.2 Write a program that prompts for a file name, then opens that file and reads through the file, looking for lines of the form: X-DSPAM-Confidence: 0.8475 Count these lines and extract the floating point values from each of the lines and compute the average of those values and produce an output as shown below. Do not use the sum() function or a variable named sum in your solution. You can download the sample data at http://www.py4e.com/code3/mbox-short.txt when you are testing below enter mbox-short.txt as the file name.

Please can you help me with this?I am unable to do so,hence i'm not able to proceed ahead

Thank you

dpungaliya avatar Jul 03 '20 14:07 dpungaliya

I am looking at 7.2 and it doesn't look like the current code uses a sum() function. You can try to change the variable name from sum to something else.

ed-lau avatar Jul 03 '20 15:07 ed-lau

I am looking at 7.2 and it doesn't look like the current code uses a sum() function. You can try to change the variable name from sum to something else.

hey,i did try that! changed "sum" to "s1" but it dint work. Next,i also tried to solve it using list,append functions but even that dint work

dpungaliya avatar Jul 03 '20 16:07 dpungaliya

Seems to work for me using the file you sent. Does this work?

fh = open('/path/to/mbox.short.txt')

s = 0.0
count = 0

for line in fh:
    
    if not line.startswith("X-DSPAM-Confidence:"):
        continue
    s += float(line[20:])
    count += 1

print ("Average spam confidence:", s/count)

ed-lau avatar Jul 08 '20 18:07 ed-lau

fname = input("Please enter the name of the file: ") handle = open(fname) count = 0 total = 0 for line in handle: if line.startswith("X-DSPAM-Confidence: "): lines = line.find(':') newline = line[lines + 1 : ] total += float(newline) count += 1

average = total / float(count) print("Average spam confidence:",average)

Jell13 avatar Dec 02 '22 18:12 Jell13