Programming Fundamentals/Loop Examples Python

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Temperature[edit]

# This program displays a temperature conversion table showing Fahrenheit
# temperatures from 0 to 100, in increments of 10, and the corresponding 
# Celsius temperatures using While, Do While, and For loops.
#
# References:
#     https://www.mathsisfun.com/temperature-conversion.html
#     https://en.wikibooks.org/wiki/Python_Programming


def while_loop():
    display_heading()
    fahrenheit = 0
    while fahrenheit <= 100:
        celsius = calculate_celsius(fahrenheit)
        display_result(fahrenheit, celsius)
        fahrenheit += 10
    print()


def do_loop():
    display_heading()
    fahrenheit = 0
    while True:
        celsius = calculate_celsius(fahrenheit)
        display_result(fahrenheit, celsius)
        fahrenheit += 10
        if not(fahrenheit <= 100): 
            break
    print()
        

def for_loop():
    display_heading()
    for fahrenheit in range(0, 101, 10):
        celsius = calculate_celsius(fahrenheit)
        display_result(fahrenheit, celsius)
    print()


def display_heading():
    print("F°\tC°")


def calculate_celsius(fahrenheit):
    celsius = (fahrenheit - 32) * 5 / 9    
    return celsius


def display_result(fahrenheit, celsius):
    print(str(fahrenheit) + "\t" + str(celsius))


def main():
    while_loop()
    do_loop()
    for_loop()


main()

Output[edit]

F°	C°
0	-17.77777777777778
10	-12.222222222222221
20	-6.666666666666667
30	-1.1111111111111112
40	4.444444444444445
50	10.0
60	15.555555555555555
70	21.11111111111111
80	26.666666666666668
90	32.22222222222222
100	37.77777777777778

F°	C°
0	-17.77777777777778
10	-12.222222222222221
20	-6.666666666666667
30	-1.1111111111111112
40	4.444444444444445
50	10.0
60	15.555555555555555
70	21.11111111111111
80	26.666666666666668
90	32.22222222222222
100	37.77777777777778

F°	C°
0	-17.77777777777778
10	-12.222222222222221
20	-6.666666666666667
30	-1.1111111111111112
40	4.444444444444445
50	10.0
60	15.555555555555555
70	21.11111111111111
80	26.666666666666668
90	32.22222222222222
100	37.77777777777778

References[edit]