# Python Programming Practice-Miscellaneous Topics I

## Counting

Very often we want our programs to count how many times something happens. For instance, a video game may need to keep track of how many turns a player has used, or a math program may want to count how many numbers have a special property. The key to counting is to use a variable to keep the count.

**Example 1 This program gets 10 numbers from the user and counts how many of those numbers are greater than 10.**

count = 0 fori in range (10): num = eval ( input ( ' Enter a number: ' )) if num>10: count=count+1 print ( ' There are ' , count, ' numbers greater than 10. ' )

Think of the count variable as if we are keeping a tally on a piece of paper. Every time we get a number larger than 10, we add 1 to our tally. In the program, this is accomplished by the line count=count+1 . The ﬁrst line of the program, count=0 , is important. Without it, the Python interpreter would get to the count=count+1 line and spit out an error saying something about not knowing what count is. This is because the ﬁrst time the program gets to this line, it tries to do what it says: take the old value of count , add 1 to it, and store the result in count . But the ﬁrst time the program gets there, there is no old value of count to use, so the Python interpreter doesn’t know what to do. To avoid the error, we need to deﬁne count , and that is what the ﬁrst

line does. We set it to 0 to indicate that at the start of the program no numbers greater than 10 have been found.

Counting is an extremely common thing. The two things involved are:

1. count=0 — Start the count at 0.

2. count=count+1 — Increase the count by 1.

**Example 2 This modiﬁcation of the previous example counts how many of the numbers the user enters are greater than 10 and also how many are equal to 0. To count two things we use two count variables.**

count1 = 0 count2 = 0 for i in range (10): num = eval ( input ( ' Enter a number: ' )) if num>10: count1=count1+1 if num==0: count2=count2+1 print ( ' There are ' , count1, ' numbers greater than 10. ' ) print ( ' There are ' , count2, ' zeroes. ' )

**Example 3 Next we have a slightly trickier example. This program counts how many of **the

**squares from 1 2 to 100 2 end in a 4.**

count = 0 for i in range (1,101): if (i**2)%10==4: count = count + 1print (count)

A few notes here: First, because of the aforementioned quirk of the range function, we need to use range (1,101) to loop through the numbers 1 through 100. The looping variable i takes on those

values, so the squares from 1 2 to 100 2 are represented by i**2 . Next, to check if a number ends

in 4, a nice mathematical trick is to check if it leaves a remainder of 4 when divided by 10. The modulo operator, % , is used to get the remainder.

### Summing

Closely related to counting is summing, where we want to add up a bunch of numbers.