python:dierbach:chapter_2_data_and_expressions
This is an old revision of the document!
Data and Expressions
Mithat Konar
based on Dierbach's Introduction to Computer Science using Python.
Contents
- Literals
- Variables and identifiers
- Operators
- Expressions
- Data types
Literals
What is a literal?
- literal: a sequence of one or more characters that stands for itself.
- numeric literal: contains only the digits 0–9, a sign character (1 or 2) and a optional decimal point.
- integer versus floating point value
e
for scientific notation3
,-42
,+98.6
,6.033e23
Number ranges
- Floating point values have limited range and precision.
- IEEE 754: ±10-308 to ±10308 with 16 to 17 digits of precision.
- arithmetic overflow: results when operation causes number to be “too big”.
>>> 1.5e200 * 2.0e210 inf
- arithmetic underflow: results when operation causes number to be “too small”.
>>> 1.0e-300 / 1.0e100 0.0
Floating point numbers are an approximation
- Limited precision means actual values are approximations.
>>> 6 * 1/10 0.6 >>> 6 * (1/10) 0.6000000000000001
Formatting output
format()
produces a string version of a value with a specific number of decimal places.- format specifier says how many places and format.
>>> 12/5 2.4 >>> format(12/5, '.2f') # 2 places, floating point '2.40' >>> format(2 ** 100, '.6e') # 6 places, scientific notation '1.267651e 1 30' >>> format(13402.25, ',.2f') # optional comma '13,402.25'
String literals
- Use either single-quote or double-quote.
greeting = 'Hi there' "Vernacular nepotism is fractious." 'A' "A"
- Clever use:
msg = 'She said, "Yellow."' msg = "She's making a radio."
Character codes
- Characters need to be encoded as (binary) numbers.
- Python uses UTF-8 by default.
ord()
translates a single character into its UTF-8 code.chr()
converts a UTF-8 code into a character.
>>> ord('1') 49 >>> ord('2') 50 >>> ord('a') 97 >>> ord('A') 65
Control characters
- control characters: non-printing characters used to control display of output.
- Represented with escape sequences (backslash in Python).
- Most popular escape sequence is the newline control:
'\n'
.
>>> print('Eat\nMore\nElderberries') Eat More Elderberries
String formatting
- Format strings with
format( value, format_specifier )
format('Hello', '<16') # left aligned field 16 characters wide 'Hello ' format('Hello', '>16') # right aligned field 16 characters wide ' Hello' format('Hello', '.>16') # fill with '.' '...........Hello'
Implicit Line Joining
- What to do with long lines in source code?
- implicit joining: you can break the line at some points without messing up logic or syntax.
print('Name:', student_name, 'Address:', student_address, 'Number of Credits:', total_credits, 'GPA:', current_gpa)
- Doesn’t work to break up a string.
Explicit Line Joining
- explicit joining (backslash) can be used in some situations where implicit joining won’t.
num_seconds = num_hours * 60 * 60 + \ num_minutes * 60
- Also doesn’t work to break up strings.
Silly encoding example
# This program displays the Unicode encoding for 'Hello World! # program greeting print('The Unicode encoding for "Hello World!" is:') # output results print(ord('H'), ord('e'), ord('l'), ord('l'), ord('o'), ord(' '), ord('W'), ord('o'), ord('r'), ord('l'), ord('d'), ord('!'))
Variables and Identifiers
What is a variable?
python/dierbach/chapter_2_data_and_expressions.1469751139.txt.gz · Last modified: 2016/07/29 00:12 by mithat